System 클래스는 Java에서 표준 입출력, 에러 출력 스트림과 같은 시스템 관련 기능을 제공하는 클래스이다. 이 클래스는 인스턴스화할 수 없고, 모든 메서드와 필드는 정적(static)이다.
요약 | 메서드 | 설명 |
---|---|---|
표준 입력 스트림 | System.in | |
표준 출력 스트림 | System.out | |
표준 오류 스트림 | System.err | |
시간 측정 | System.currentTimeMillis() | 현재 시간을 밀리초 단위로 제공 |
시간 측정 | System.nanoTime() | 현재 시간을 나노초 단위로 제공 |
환경변수 | System.getenv() | OS에서 설정한 환경 변수의 값 |
시스템 속성 | System.getProperties() System.getProperty(String key) | 현재 시스템 속성 얻기 현재 시스템의 특정 속성 얻기 |
시스템 속성 | System.setProperties(Properties props) System.setProperty(String key, String value) | 시스템 속성 설정 시스템 특정 속성 설정 |
시스템 속성 | System.clearAllProperties() System.clearProperty(String key) | 시스템 속성 값 제거 시스템 특정 속성 값 제거 |
시스템 종료 | System.exit(int status) | 프로그램을 종료하고, OS에 프로그램 종료 상태 코드를 전달 상태 코드 0: 정상 종료 상태 코드 0이 아님: 오류 또는 예외적인 종료 |
배열 고속 복사 | System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) | 시스템 레벨에서 최적화된 메모리 복사 연산 반복문을 사용한 배열 복사보다 수 배 이상 빠른 성능 제공 |
가비지 컬렉터 실행 | System.gc() | GC 실행하여 사용하지 않는 객체를 정리 메서드를 제외한 모든 쓰레드 정지 |
System.out
System.out.print("This is a message"); // This is a message
System.in
public String readUsername() throws IOException {
BufferedReader reader = new BufferedReader(
new InputStreamReader(System.in));
return reader.readLine();
}
System.err
System.err.print("This is a error message"); // This is a error message(in red)
System.currentTimeMilis()
public class SystemMain {
public static void main(String[] args) {
long currentTimeMilis = System.currentTimeMilis();
System.out.println(currentTimeMilis); // 1716701361563
}
}
System.nanoTime()
public class SystemMain {
public static void main(String[] args) {
long nanoTime = System.nanoTime();
System.out.println(nanoTime); // 542039487200416
}
}
System.getenv()
public class SystemMain {
public static void main(String[] args) {
System.out.println(System.getenv());
// {COMMAND_MODE=unix2003, PYENV_ROOT=/Users/yujeongee/.pyenv, ...}
}
}
System.getProperties()
, System.getProperty(int status)
public class SystemMain {
public static void main(String[] args) {
Properties properties = System.getProperties();
System.out.println(properties);
// {java.specification.version=21, sun.jnu.encoding=UTF-8, java.class.path=/Users/...}
System.out.println(System.getProperty("java.version"); // 21.0.1
}
}
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
public class SystemMain {
public static void main(String[] args) {
char[] srcArray = new char[]{'j', 'a', 'v', 'a'};
char[] destArray = new char[4];
System.arraycopy(srcArray, 0, copiedArray, 0, srcArray.length);
System.out.println(Arrays.toString(copiedArray)); // [j, a, v, a]
}
}
exit(int status)
public class SystemMain {
public static void main(String[] args) {
System.exit(0);
}
}
참고
Class System
Quick Guide to java.lang.System
김영한의 실전 자바 - 중급 1편