System 클래스는 자바 프로그램에서 시스템 레벨의 작업을 수행하기 위한 메서드와 필드를 제공하는 클래스입니다. 이 클래스는 java.lang 패키지에 속해 있어서 별도의 임포트 없이 사용할 수 있습니다.
System 변수
System 클래스의 인스턴스를 나타내며, 주로 표준 입력, 표준 출력 및 표준 에러 스트림에 대한 참조를 제공하는 역할을 한다.
- System.in: 표준 입력 스트림을 나타내는 변수. 주로 Scanner 클래스와 같은 입력 도구에서 사용된다.
Scanner scanner = new Scanner(System.in);
- System.out: 표준 출력 스트림을 나타내는 변수. System.out.println()과 같은 출력 메서드에서 사용된다.
System.out.println("Hello, World!");
- System.err: 표준 에러 스트림을 나타내는 변수. 오류 메시지를 출력할 때 사용된다.
System.err.println("Error: Something went wrong!");
System 클래스의 주요 메서드
- getProperties(): 시스템의 모든 프로퍼티를 Properties 객체로 반환하는 메서드.
- getProperty(String key): 시스템 프로퍼티(시스템 설정 값)를 가져오는 데 사용됩니다.
// Java Runtime Environment 버젼
System.out.println("java.version=" + System.getProperty("java.version"));
// Java Runtime Environment 버젼
System.out.println("java.vendor=" + System.getProperty("java.vendor"));
// Java Runtime Environment 벤더
System.out.println("java.vendor.url=" + System.getProperty("java.vendor.url"));
// Java Runtime Environment 설치 디렉토리
System.out.println("java.home=" + System.getProperty("java.home"));
// Java 가상 머신 사양
System.out.println("java.vm.specification.version=" + System.getProperty("java.vm.specification.version"));
// Java 가상 머신 사양 벤더
System.out.println("java.vm.specification.vendor=" + System.getProperty("java.vm.specification.vendor"));
// Java 가상 머신 사양명
System.out.println("java.vm.specification.name=" + System.getProperty("java.vm.specification.name"));
// Java 가상 머신 구현 버젼
System.out.println("java.vm.version=" + System.getProperty("java.vm.version")); //
// Java 가상 머신 구현 벤더
System.out.println("java.vm.vendor=" + System.getProperty("java.vm.vendor")); //
// Java 가상 머신 구현명
System.out.println("java.vm.name=" + System.getProperty("java.vm.name"));
// Java Runtime Environment 의 사양 버젼
System.out.println("java.specification.version=" + System.getProperty("java.specification.version"));
// Java Runtime Environment 의 사양의 벤더
System.out.println("java.specification.vendor=" + System.getProperty("java.specification.vendor"));
// Java Runtime Environment 의 사양명
System.out.println("java.specification.name=" + System.getProperty("java.specification.name"));
// Java 클래스의 형식의 버젼 번호
System.out.println("java.class.version=" + System.getProperty("java.class.version"));
// Java 클래스 패스
System.out.println("java.class.path=" + System.getProperty("java.class.path"));
// 라이브러리의 로드시에 검색하는 패스의 리스트
System.out.println("java.library.path=" + System.getProperty("java.library.path"));
// 디폴트 일시파일의 패스
System.out.println("java.io.tmpdir=" + System.getProperty("java.io.tmpdir"));
// 사용하는 JIT 컴파일러의 이름
System.out.println("java.compiler=" + System.getProperty("java.compiler"));
// 확장 디렉토리의 패스
System.out.println("java.ext.dirs=" + System.getProperty("java.ext.dirs"));
// operating system 명
System.out.println("os.name=" + System.getProperty("os.name"));
// operating system 아키텍쳐
System.out.println("os.arch=" + System.getProperty("os.arch"));
// operating system 버젼
System.out.println("os.version=" + System.getProperty("os.version"));
// 파일 단락 문자 (UNIX 에서는 "/")
System.out.println("file.separator=" + System.getProperty("file.separator"));
// 경로 단락 문자 (UNIX 에서는 ":")
System.out.println("path.separator=" + System.getProperty("path.separator"));
// 행 단락 문자 (UNIX 에서는 "\n")
System.out.println("line.separator=" + System.getProperty("line.separator"));
// 사용자명
System.out.println("user.name=" + System.getProperty("user.name"));
// 사용자 홈 디렉토리
System.out.println("user.home=" + System.getProperty("user.home"));
// 사용자 현재의 작업 디렉토리
System.out.println("user.dir=" + System.getProperty("user.dir"));
- getProperty(String key, String def): 시스템 프로퍼티를 설정합니다.
- currentTimeMillis(): 현재 시간을 밀리초 단위로 반환하는 메서드. 성능 측정이나 타이밍 관련 작업에 사용됩니다.
- nanoTime(): 현재 시스템 시간을 나노초 단위로 반환하는 메서드 . 성능 측정이나 정밀한 타이밍 관련 작업에서 사용됩니다.
long startTime = System.nanoTime(); //또는 System.currentTimeMillis()
// 여기에 시간을 측정하고자 하는 작업을 수행
long endTime = System.nanoTime(); //또는 System.currentTimeMillis()
long elapsedTime = endTime - startTime;
System.out.println("경과 시간: " + elapsedTime + " 나노초"); //밀리초
- exit(int status): 프로그램을 종료하는 데 사용돼. status는 종료 상태 코드를 나타냄.
- gc(): 가비지 컬렉션을 실행하는 데 사용돼. 메모리 관리를 위해 가비지 컬렉터가 더이상 참조되지 않는 객체를 정리하는 데 도움을 줌.
- arraycopy(): 배열의 일부를 다른 배열로 복사할 때 사용하는 메서드.
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
src: 복사하고자 하는 원본 배열
srcPos: 원본 배열에서 복사를 시작할 위치
dest: 복사한 내용을 저장할 대상 배열
destPos: 대상 배열에서 복사를 시작할 위치
length: 복사할 요소의 수
'Backend > JAVA' 카테고리의 다른 글
Callable, Runnable, Future (0) | 2024.06.05 |
---|---|
스레드 풀(Thread Pool), Executor (0) | 2024.06.05 |
JAVA에서 html 다루기 (Jsoup) (0) | 2023.08.16 |
[JAVA] 패키지와 클래스 (같은 이름의 클래스 import) (0) | 2023.07.25 |
JAVA 문자열 비교 (== 연산자와 equals 메서드의 차이) (0) | 2023.07.25 |