: 자바 프로그램은 운영체제에서 바로 실행되는 것이 아니라
JVM위에서 실행됨
: java.lang 패키지에 속하는 System 클래스를 이용하면
운영체제의 일부 기능을 이용할 수 있음
즉, 프로그램 종료, 키보드로부터 입력,
모니터로 출력, 현재 시간 읽기등이 가능함
: System 클래스의 모든 필드와 메소드는
정적 필드와 정적 메소드로 구성되어 있음
: 강제적으로JVM을 종료시킬 때도 있음
: System 클래스의 exit() 메소드를 호출하면
현재 실행하고 있는 프로세스를
강제로 종료시키는 역할을 함
: exit() 메소드는 int 매개값을 지정하도록 되어 있는데,
이 값을 종료 상태값이라고함
→ 일반적으로 정상 종료일 경우 0 값을 줌
System.exit(0);
public class ExitExample {
public static void main(String[] args) {
for(int i=0; i<10; i++) {
if(i == 5) {
System.exit(0);
//break;
}
}
System.out.println("마무리 코드");
}
}
→ System.exit(0)은 프로그램을 강제 종료하므로
"마무리 코드"는 출력되지 않음
출력 코드를 사용하고 싶다면
System.exit(0) 대신에 for문을 빠져나오는
break문을 사용하는 것이 좋음
: System 클래스의
currentTimeMillis() 메소드와
nanoTime() 메소드는
컴퓨터 시계로부터 현재 시간을 읽어서
밀리세컨드(1/1000초) 단위와
나노세컨드(1/10의 9승 초) 단위의
long 값을 리턴함
long time = System.currentTimeMillis();
long time = System.nanoTime();
: 리턴값은 주로 프로그램의 실행 소요 시간 측정에 사용됨
: 프로그램 시작 시 시각을 읽고,
프로그램이 끝날 때 시각을 읽어서 차이를 구하면
프로그램 실행 소요 시간이 나옴
public class SystemTimeExample {
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)
+ " 나노초가 소요되었습니다.");
}
}
💻 결과
1~1000000까지의 합: 1784293664
계산에 3491600 나노초가 소요되었습니다.