-
System 클래스JAVA 2023. 3. 13. 16:41
- 자바에서 운영체제의 일부 기능을 이용하기 위한 클래스
자바는 자바 가상 머신에서 실행되므로 운영체제의 모든 기능을 직접 접근하기 어렵다. - 정적 필드와 정적 메소드로만 구성되어 있다.
생성자가 없다.(= 객체 생성할 필요 없이 바로 사용 가능)
정적 필드
필드 데이터 타입 설명 out PrintStream 콘솔에 문자 출력
(에러 이외의 내용 위주)err PrintStream 콘솔에 에러 내용 출력(붉은 색으로 표시) in InputStream 키보드 입력
키보드 입력
- 입력한 키 값에 대응되는 정수 값을 반환
System.in.read()- 특정 키 입력 시에만 작동하는 기능을 정의할 때 사용
키 코드 표
키 0 1 2 3 4 5 6 7 8 9 코드 값 48 49 50 51 52 53 54 55 56 57 키 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 코드 값 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 키 a b c d e f g h i j k l m n o p q r s t u v w x y z 코드 값 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 - Enter 키
Window : 10, 13
macOS : 10
주로 사용하는 메소드
메소드 설명 exit(int status) 프로세스 종료 currentTimeMillis() 현재 시간을 밀리초 단위의 long 값으로 리턴 nanoTime() 현재 시간을 나노초 단위의 long 값으로 리턴 getProperty() 운영체제와 사용자 정보 제공
프로세스 종료
- 프로세스(JVM 자체)를 종료하는 기능
System.exit(int status)- 종료 상태 값
- System에 설정되는 SecurityManager에서 활용
- Java 17에서 SecurityManager가 Deprecated로 변경됨에 따라 이후 버전에서는 사용을 지양- 정상 종료 : 0
- 비정상 종료 : 1 또는 -1
진행 시간 읽기
- 1970년 1월 1일 0시부터 현재까지 걸린 시간을 누적한 값을 리턴하는 메소드 활용
- 주로 특정 기능의 성능을 측정하기 위해 시작부터 종료까지 걸린 시간을 계산할 때 사용한다.
시간 측정 메소드
메소드 설명 비고 long currentTimeMillis() 현재 시간을 밀리 초(1/1000초) 단위의 long 값으로 리턴 long nanoTime() 현재 시간을 나노 초(1/10⁹초) 단위의 ong 값으로 리턴 매우 짧은 시간을 측정할 때 사용
시스템 프로퍼티
- 운영체제의 속성 정보
System.getProperty(속성)- Properties : 시스템 프로퍼티를 담을 수 있는 객체(나중에 자세히 다룸)
//운영체제의 모든 속성 정보를 Properties 객체에 저장Properties props = System.getProperties();주요 속성
속성(키) 설명 값(예시) java.specification.version 자바의 스펙 버전 17 java.home JDK 디렉토리 경로 C:\Program Files\Java\jdk-17.0.3 os.name 운영체제 Windows 10 user.name 사용자 이름 user user.home 사용자 홈 디렉토리 경로 C:\Users\user user.dir 현재 디렉토리 경로 C:\Windows\system32 'JAVA' 카테고리의 다른 글
람다식(Lamda Expression) (0) 2023.03.15 문자열 관련 클래스 (0) 2023.03.14 Object 클래스 (0) 2023.03.13 중첩 클래스(Nested Class)와 중첩 인터페이스(Nested Interface) (0) 2023.03.10 제네릭(Generic) (0) 2023.03.02 - 자바에서 운영체제의 일부 기능을 이용하기 위한 클래스