본문 바로가기
Language/Java

[Java API] System 클래스

by 클레어몬트 2024. 8. 23.

ㅇSystem 클래스: Java 프로그램 기본 시스템 기능에 접근할 수 있는 유틸리티 클래스

e.g. 자바 프로그램의 표준 입력, 표준 출력, 시스템 속성, 환경 변수, 시간 측정 등의 기능을 제공

※ 이 클래스는 상속할 수 없으며, 모든 메서드와 필드는 정적(static)으로 선언되어 있어 객체를 생성하지 않고 사용할 수 있다

 

(예시 코드)

package lang.system;

import java.util.Arrays;

public class SystemMain {
    public static void main(String[] args) {
        // 현재 시간(ms)을 가져온다
        long currentTimeMillis = System.currentTimeMillis();
        System.out.println("currentTimeMillis: " + currentTimeMillis);
        // 현재 시간(ns)을 가져온다
        long currentTimeNano = System.nanoTime();
        System.out.println("currentTimeMillis: " + currentTimeNano);

        // 환경 변수를 읽는다 (OS)
        System.out.println("getenv = " + System.getenv());

        // 시스템 속성을 읽는다 (Java)
        System.out.println("properties = " + System.getProperties());
        System.out.println("Java version: " + System.getProperty("java.version"));

        // 배열을 고속으로 복사한다 (OS한테 넘겨서 HW와 직통 작업 - 수 배 이상 빠른 성능)
        char[] originalArray = new char[]{'h', 'e', 'l', 'l', 'o'};
        char[] copiedArray = new char[5];
        System.arraycopy(originalArray, 0, copiedArray, 0, originalArray.length);
        // 배열 출력
        System.out.println("copiedArray = " + copiedArray);
        System.out.println("Arrays.toString = " + Arrays.toString(copiedArray));

        // 프로그램 종료
        System.exit(0);
    }
}

 

 

(참고)

우리가 흔히 쓰는 System.out.println() 메서드가 바로 이 System 클래스다

- System.out: 표준 출력 스트림을 나타내는 PrintStream 객체, 일반적으로 콘솔에 출력하는 데 사용된다

 

 

 

 

 

 

참고 및 출처: 김영한의 실전 자바 - 중급 1편

https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EC%A4%91%EA%B8%89-1