Recent Posts
Recent Comments
Link
11-17 00:00
Today
Total
관리 메뉴

삶 가운데 남긴 기록 AACII.TISTORY.COM

System 클래스 본문

DEV&OPS/Java

System 클래스

ALEPH.GEM 2022. 4. 7. 16:02

자바 프로그램은 운영체제가 아니라 JVM에서 실행됩니다.

그래서 System 클래스를 통해 운영체제의 일부 기능을 제공하고 있습니다.

 

exit()

프로세스를 강제 종료한는 메소드 입니다.

public class ExitEx {

	public static void main(String[] args) {
		for(int i = 0; i<10; i++) {
			System.out.println(i);
			if(i == 5) {
				System.exit(i);
			}
		}
	}

}

 

gc()

가비지 컬렉트 요청을 합니다.

메모리가 부족하거나 CPU에 여유가 있을 때 실행되기 때문에 정확한 실행 타이밍을 알 수 없습니다.

public class GCExample {

	public static void main(String[] args) {
		Employee emp = new Employee(1);
		emp = null;	//쓰레기가 됨
		emp = new Employee(2);
		emp = new Employee(3);
		System.out.println(emp.eno);
		System.gc(); //가비지 콜렉트 요청
	}

}

class Employee {
	public int eno;
	public Employee(int eno) {
		this.eno = eno;
		System.out.println("Employee "+eno+" 생성");
	}
	public void finalize() {
		System.out.println("Employee "+eno+" 제거");
	}
}

 

시스템 시간

public class SystemTime {

	public static void main(String[] args) {
		long stime1 = System.currentTimeMillis();
		long stime2 = System.nanoTime();
		
		int sum = 0;
		for(int i = 1; i <= 10000; i++) {
			sum += i;
		}
		
		long etime1 = System.currentTimeMillis();
		long etime2 = System.nanoTime();
		
		System.out.println((etime1 - stime1) +"밀리초" );
		System.out.println(sum);
		System.out.println((etime2 - stime2) + "나노초" );
	}

}

 

시스템 프로퍼티

java.version : 자바 버전

java.home : JRE 경로

os.name : 운영체제 이름

file.separator : 파일 시스템 경로 구분 문자(윈도우:\, 리눅스:/)

user.name : 사용자 계정

user.home : 홈 디렉토리

user.dir : 현재 작업중인 디렉토리

import java.util.Properties;
import java.util.Set;

public class GetProperty {

	public static void main(String[] args) {
		System.out.println(System.getProperty("os.name"));
		
		Properties props = System.getProperties();
		Set keys = props.keySet();
		
		for(Object objkey : keys) {
			String key = (String)objkey;
			String value = System.getProperty(key);
			System.out.println("["+key+"]" + value);
		}
	}

}

 

환경 변수 

운영체제는 환경 변수를 등록하고 관리하는데 Path나 JAVA_HOME 같은 것들을 말합니다.

public class SystemEnv {

	public static void main(String[] args) {
		System.out.println(System.getenv("path"));
	}

}

 

 

 

 

 

 

 

 

 

 

728x90

'DEV&OPS > Java' 카테고리의 다른 글

java.util.regex.Pattern 클래스  (0) 2022.04.12
JAVA String 처리  (0) 2022.04.11
java.util.Objects 클래스  (0) 2022.04.07
자바 API , Object 클래스  (0) 2022.04.07
예외 처리  (0) 2022.04.06