[Java] System 클래스

Devlog·2024년 3월 27일

Java

목록 보기
28/41

✔️ System 클래스

: 자바 프로그램은 운영체제에서 바로 실행되는 것이 아니라
JVM위에서 실행됨

: java.lang 패키지에 속하는 System 클래스를 이용하면
운영체제의 일부 기능을 이용할 수 있음
즉, 프로그램 종료, 키보드로부터 입력,
모니터로 출력, 현재 시간 읽기등이 가능함

: System 클래스의 모든 필드와 메소드는
정적 필드와 정적 메소드로 구성되어 있음


✔️ exit() 메소드

: 강제적으로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문을 사용하는 것이 좋음

✔️ currentTimeMillis(), nanoTime() 메소드

: 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 나노초가 소요되었습니다.

0개의 댓글