현재 시각 읽기 currentTimeMiles() , nanoTime()
컴퓨터 시계로부터 현재시간을 읽어서
currentTimeMiles() : 밀리세컨드(1/1000초)단위 long 값 리턴
nanoTime() : 나노세컨드(1/1000000000초)단위 long 값 리턴
long time = System.currentTimeMiles();
long time2 = System.nanoTime();
주로 프로그램의 실행 소요 시간 측정에 사용됩니다.
프로그램 시작 시 시각을 읽고
프로그램이 끝날 때 시각을 읽어서 차이를 구하면 프로그램 실행 송 시간이 나옵니다.
예제)
public class TimeExample {
public static void main(String[] args) {
long time1 = System.nanoTime();
int sum = 0;
for(int i=1; i<=1000000; i++) {
sum += i;
}
long time2 = System.nanoTime();
System.out.println("1~1000000까지의 합: " + sum);
System.out.println("계산에 " + (time2-time1) + " 나노초가 소요되었습니다.");
}
}
시스템 프로퍼티 읽기 getProperty()
JVM이 시작할 때 자동 설정되는 시스템의 속성값을 말합니다.
예를 들어 운영체제의 종류 및 자바 프로그램을 실행시킨
사용자 아이디, JVM의 버전, 운영체제에서 사용되는 파일 경로 구분자 등이 여기에 속합니다.
시스템 프로퍼티는 키와 값으로 구성되어 있습니다.
대표적인 키와 값에 대한 설명
키(Key) 설명 값
java.version 자바의 버전 1.8.0_20
java.home 사용하는 JRE의 파일 경로 <jdk 설치경로>\jre
os.name Operating System name Windows 7
file.separator File separator("/" on UNIX) \
user.name 사용자의 이름 사용자계정
user.home 사용자의 홈 디렉토리 C:\Users\사용자계정
user.dir 사용자가 현재 작업중인 디렉토리 경로 다양하다.
시스템 프로퍼티를 읽어오기 위해서는 System.getProperty() 메서드를 이용하면 되는데,
이 메서드는 시스템 프로퍼티의 키 이름을 매개값으로 받고, 해당 키에 대한 값을 문자열로 리턴합니다.
String value = System.getProperty(String key);
사용예제
import java.util.Properties;
import java.util.Set;
public class GetPropertyExample {
public static void main(String[] args) {
String osName = System.getProperty("os.name");
String userName = System.getProperty("user.name"); // 개별 속성 읽기
String userHome = System.getProperty("user.home");
System.out.println("운영체제 이름: " + osName);
System.out.println("사용자 이름: " + userName);
System.out.println("사용자 홈디렉토리: " + userHome);
System.out.println("---------------------------------");
System.out.println(" [ key ] value");
System.out.println("---------------------------------");
Properties props = System.getProperties(); // 모든 속성의 키와 값을 출력
Set keys = props.keySet();
for(Object objKey : keys) {
String key = (String) objKey;
String value = System.getProperty(key);
System.out.println("[ " + key + " ] " + value);
}
}
}
굉장히 많은 정보가 출력됩니다.