System
System 클래스는 실행시간 환경과 관련된 속성과 메소드를 가지고 있다. System 클래스에서 제공되는 out과 in을 이용한 표준 입력과 출력, err을 이용한 에러 출력에 관한 클래스 변수를 가지고 있고 객체를 복사해 주는 메소드와 프로그램을 작성할 때는 사용할 수 있는 유용한 메소드를 제공한다.
비밀번호 확인 로직
package sec3;
public class SystemEx1 {
public static void main(String[] args) {
for(int i=0; i<5; i++) {
try {
System.out.println(i);
} catch (SecurityException e) {
System.out.println("종료");
System.exit(i);
}
}
}
}
가비지 컬렉션
package sec3;
class Student {
private int no;
private String name;
public Student() {}
public Student(int no, String name) {
this.no = no;
this.name = name;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class SystemEx2 {
public static void main(String[] args) {
Student st1;
st1 = new Student(1, "홍길동");
System.out.println(st1.getNo()+st1.getName());
st1 = null;
st1 = new Student();
System.out.println(st1.getNo()+st1.getName());
System.gc();
}
}
시간 복잡도, 성능평가
package sec3;
public class SystemEx3 {
public static void main(String[] args) {
long tot = 0;
long start = System.nanoTime();
for(int i=0; i<=1000000; i++) {
System.out.println(i);
tot+=i;
}
long end = System.nanoTime();
System.out.println("누적 합 : "+tot);
System.out.println("걸린 시간 : "+(end-start)+"ns");
}
}
시스템 정보 출력
package sec3;
import java.util.Properties;
import java.util.Set;
public class SystemEx4 {
public static void main(String[] args) {
System.out.println("환경변수 : "+System.getenv("JAVA_HOME"));
System.out.println("운영체제 : "+System.getProperty("os.name"));
System.out.println("사용자 : "+System.getProperty("user.name"));
System.out.println("사용자 디렉토리 : "+System.getProperty("user.home"));
System.out.println("자바버전 : "+System.getProperty("java.version"));
System.out.println("자바 홈 : "+System.getProperty("java.home"));
Properties props = System.getProperties();
Set keys = props.keySet();
for (Object k:keys) {
String key = (String) k;
String val = System.getProperty(key);
System.out.println(key+" : "+val);
}
}
}