본문 바로가기
언어(Language)/Java

[Java] System 클래스

by 송기동 2025. 6. 8.
728x90

System 클래스

 

- java.lang.System 클래스는 자바의 표준 라이브러리 클래스 중 하나
- 입출력, 시간 측정, 환경 정보, 프로그램 종료 등 시스템 관련 기능을 제공

- 모든 메서드와 필드는 static으로 선언되어 있어, 객체 생성 없이 바로 사용 가능

System.out.println("Hello");  // 객체 생성 없이 사용

 

 

주요 기능 요약

기능 대표 메서드 / 필드
출력 / 입력 System.out, System.err, System.in
프로그램 종료 System.exit(int)
시간 측정 System.currentTimeMillis(), System.nanoTime()
환경 정보 System.getProperties(), System.getenv()
메모리 정보 System.gc(), System.getRuntime()
배열 복사 System.arraycopy()

System 클래스의 주요 필드

1. System.out 

- 표준 출력 스트림, PrintStream 객체

- 콘솔에 출력할 때 사용

- 가장 많이 쓰임

System.out.println("안녕하세요!");  // 줄바꿈 포함 출력
System.out.print("Hello");        // 줄바꿈 없이 출력

 

2. System.err

- 에러 출력 스트림, InputStream 객체

- 표준 에러 출력(보통 붉은 글씨로 표시됨)

System.err.println("오류 발생!");

 

3. System.in

- 표준 입력 스트림, PrintStream 객체

- 기본 입력 스트림(키보드 입력 받기용)

- 보통 Scanner 와 함께 사용

Scanner sc = new Scanner(System.in);
String input = sc.nextLine();

주요 메서드 설명과 예제

1. System.currentTimeMillis( )

 

- 현재 시간을 1970년 1월 1일 이후 경과된 밀리초로 반환

- 시간 측정(성능 비교 등)에 사용

long start = System.currentTimeMillis();
// 처리할 코드
long end = System.currentTimeMillis();
System.out.println("걸린 시간: " + (end - start) + "ms");

 

 

2. System.nanoTime( )

- 더 정밀한 시간 측정 (나노초 단위, 상대 시간용)

long start = System.nanoTime();
// 처리
long end = System.nanoTime();
System.out.println("걸린 시간(ns): " + (end - start));

 

3. System.exit(int status)

- 프로그램 강제 종료

- 0 = 정상 종료, 1 = 비정상 종료

System.out.println("프로그램 종료 전");
System.exit(0);
System.out.println("이 코드는 실행되지 않음");  // 무시됨

 

4. System.getProperty(String key)

- 자바 시스템의 환경 정보 가져오기

System.out.println(System.getProperty("os.name"));      // 운영체제 이름
System.out.println(System.getProperty("java.version")); // 자바 버전

 

5. System.getenv(String name)

- 환경변수 가져오기

String path = System.getenv("PATH");
System.out.println("환경변수 PATH: " + path);

 

6. System.arraycopy( )

- 배열을 빠르게 복사할 때 사용

int[] src = {1, 2, 3, 4, 5};
int[] dest = new int[5];

System.arraycopy(src, 0, dest, 0, src.length);
System.out.println(Arrays.toString(dest));  // [1, 2, 3, 4, 5]

✅ 요약

구성 요소 설명
System.out 표준 출력 스트림 (print, println)
System.err 에러 메시지 출력 스트림
System.in 표준 입력 스트림 (Scanner와 함께 사용)
currentTimeMillis() 밀리초 단위 시간 측정
nanoTime() 나노초 단위 시간 측정
exit(int) 프로그램 강제 종료
getProperty() 운영체제, 자바 정보 등 시스템 속성
getenv() 시스템 환경 변수 읽기
arraycopy() 배열 빠르게 복사
728x90

'언어(Language) > Java' 카테고리의 다른 글

[Java] Number 클래스  (1) 2025.06.08
[Java] Wrapper Class (포장 클래스)  (1) 2025.06.08
[Java] StringBuffer 클래스  (2) 2025.06.08
[Java] java.lang 패키지  (1) 2025.06.08
[Java] Object 클래스  (1) 2025.06.08