[Java] System 클래스

Yujeong·2024년 5월 26일
0

Java

목록 보기
8/22
post-thumbnail

System 클래스는 Java에서 표준 입출력, 에러 출력 스트림과 같은 시스템 관련 기능을 제공하는 클래스이다. 이 클래스는 인스턴스화할 수 없고, 모든 메서드와 필드는 정적(static)이다.

System 클래스 기능

요약메서드설명
표준 입력 스트림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 클래스 사용해보기

  • 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편

profile
공부 기록

0개의 댓글

관련 채용 정보