일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 99클럽
- 실행 예외
- 항해99
- try-catch-finally 블록
- 예외클래스
- 코딩테스트준비
- 로켓펀치 #취준컴퍼니 #취업 #일상 #취준생
- 다중 catch 블록
- 예외
- til
- 일반 예외
- 예외 처리
- throws 키워드
- 개발자취업
- Today
- Total
innn
기본 API 클래스 - System 클래스 본문
System 클래스
자바 프로그램은 운영체제에서 바로 실행되는 것이 아니라 JVM 위에서 실행된다. 따라서 운영체제의 모든 기능을 직접 이용하기는 어렵다. 하지만 java.lang 패키지에 속하는 System 클래스를 이용하면 운영체제의 일부 기능을 이용할 수 있다. 즉, 프로그램 종료, 키보드로부터 입력, 모니터로 출력, 현재 시간 읽기 등이 가능하다. System 클래스의 모든 필드와 메소드는 정적static 필드와 정적static 메소드로 구성되어 있다.
프로그램 종료(exit())
경우에 따라서는 강제적으로 JVM을 종료시킬 때도 있다. 이때 System 클래스의 exit() 메소드를 호출하면 된다. exit() 메소드는 현재 실행하고 있는 프로세스를 강제 종료시키는 역할을 한다. exit() 메소드는 int 매개값을 지정하도록 되어 있는데, 이 값을 종료 상태값이라고 한다. 일반적으로 정상 종료일 경우 0 값을 준다.
System.exit(0);
아래 예제는 for문이 10번 반복하다가 i가 5가 되면 System.exit(0)가 실행되어 프로그램(JVM)을 종료한다.
System.exit(0)은 프로그램을 강제 종료하므로 7라인에서 실행하면 11라인은 출력되지 않는다. 만약 프로그램이 종료될 때 꼭 11라인을 실행해야 한다면 System.exit(0) 대신에 for문을 빠져나오는 break문을 사용하는 것이 좋다. 7라인과 8라인을 번갈아 가면서 주석처리하고 실행해보자.
(개인적으로 느끼기엔 cpu 강제 종료 같은 느낌이다)
현재 시각 읽기(currentTimeMillis(), nanoTime())
System 클래스의 currentTimeMillis() 메소드와 nanoTime() 메소드는 컴퓨터의 시계로부터 현재 시간을 읽어서 밀리세컨드(1/100초) 단위와 나노세컨드(1/10^9초) 단위의 long 값을 리턴한다.
long time = System.currentTimeMilis();
long time = System.nanoTime();
리턴값은 주로 프로그램의 실행 요소 시간 측정에 사용된다. 프로그램 시작 시 시각을 읽고, 프로그램이 끝날 때 시각을 읽어서 차이를 구하면 프로그램 실행 요소 시간이 나온다.
아래 예제는 for문을 사용해서 1부터 1000000까지의 합을 구하는 데 걸리는 시간을 출력했다.
'JAVA > 자바' 카테고리의 다른 글
기본 API 클래스 - String 클래스 (0) | 2022.09.27 |
---|---|
기본 API 클래스 - Class 클래스 (0) | 2022.09.27 |
기본 API 클래스 - Object 클래스의 toString() 메소드 (0) | 2022.09.27 |
기본 API 클래스 - Object 클래스의 hashCode() 메소드 (0) | 2022.09.27 |
기본 API 클래스 - Object 클래스의 equals() 메소드 (0) | 2022.09.27 |