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 |