삶 가운데 남긴 기록 AACII.TISTORY.COM
System 클래스 본문
자바 프로그램은 운영체제가 아니라 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 |