java.lang패키지2 : System클래스의 메서드
- java.lang패키지의 가장 큰 특징 : import할 필요 없다.
System클래스
- JVM이 실행되고 있는 운영체제(OS)와 소통을 위한 클래스
- 다양한 정적 메서드 제공
- System 클래스를 이용하면 운영체제의 프로그램 종료, 키보드로부터 입력, 모니터로 출력, 메모리 정리, 현재 시간 읽기, 시스템 프로피티 읽기, 환경 변수 읽기등의 일부 기능을 사용가능.
프로그램의 종료와 G.C권고
- System.gc() : 가비지컬렉터를 실행.
- System.exit(0) : 강제적으로 JVM을 종료시킴.
- System.exit(0); 정상종료
- System.exit(n); 0이외의 다른 숫자는 비정상종료
- Positive => 잘못된 것으로 예상되는 부분이 잘못됨 (잘못된 명령 줄, 파일을 찾을 수 없음, 서버에 연결할 수 없음)
- Negative => 전혀 예상하지 못한 것 (시스템 오류 - 예기치 않은 예외 - 외부 강제 종료, 예 : kill -9)
1
2
3System.exit(0) or EXIT_SUCCESS; ---> Success
System.exit(1) or EXIT_FAILURE; ---> Exception
System.exit(-1) or EXIT_ERROR; ---> Error
1 | class Dummy{ |
현재 시각 정보 획득
- 작성한 애플리케이션의 성능을 체크하기 위해 소요 시간을 계산할 필요가 있다.
- currentTimeMillis() : 현재 시각을 밀리세커드(1/1000초)단위의 long 타입으로 리턴.
- System.nanoTime() : 현재 시각을 나노세컨드(1/10^9초)단위의 long 타입으로 리턴.
1 | public class SystemClockTest { |
시스템 속성 및 환경변수 참조
- 시스템 속성 : JVM이 시작할 때 OS로부터 얻어오는 값.
- 값 종류 : OS종류, JDK설치경로, 사용자계정, 사용자 임시디렉토리경로등
- 시스템 속성이 중요한 이유 :
- OS의 종류를 가리지 않는 플랫폼 독립적인 프로그램을 작성하기 위해서!
- getProperties() : 모든 시스템 속성들을 키-값의 쌍으로 데이터를 저장하는 java.util.Properties형태로 반환.
1 | public class Test { |