System 클래스의 일반적인 사용법
1. 주로 시스템 환경 변수 정보를 얻습니다.
다음과 같이 코드 코드를 복사합니다.
public static void sysProp()에서 예외 발생{
Map<String,String> env = System.getenv();
//시스템의 모든 환경 변수를 가져옵니다.
for(문자열 이름 : env.keySet()){
System.out.println(이름 + " : " +env.get(이름));
}
//시스템의 지정된 환경 변수 값을 가져옵니다.
System.out.println(env.get("JAVA_HOME"));
//시스템의 모든 속성을 가져옵니다.
속성 prop = System.getProperties();
//시스템 속성을 구성 파일에 저장합니다.
prop.store(new FileOutputStream("Prop.properties"),"시스템 속성");
//특정 시스템 속성 출력
System.out.println(System.getProperty("os.name"));
}
2. 시스템 시간과 관련된 메소드 연산
다음과 같이 코드 코드를 복사합니다.
공개 정적 무효 sysTime(){
//시스템의 현재 시간을 밀리초 단위로 가져옵니다. currentTimeMillis()(현재 시간과 UTC 1970.1.1 00:00 사이의 시간 차이를 반환합니다.)
오랜 시간 = System.currentTimeMillis();
System.out.println(시간);
Long time1 = System.nanoTime();//주로 나노초 단위의 시간 차이를 계산하는 데 사용됩니다.
긴 시간3 = System.currentTimeMillis();
for(Long i =0l;i <999l; i++){}
긴 시간2 = System.nanoTime();
긴 시간4 = System.currentTimeMillis();
System.out.println(time2 - time1+ " : " +(time4 - time3));
}
3. 힙 메모리에서 두 객체가 동일한지 확인합니다.
다음과 같이 코드 코드를 복사합니다.
공개 정적 무효 IDHashCode(){
//str1 str2는 두 개의 서로 다른 String 객체입니다.
String str1 = new String("helloWorld");
String str2 = new String("helloWorld");
//String 클래스가 hashCode() 메서드를 재정의하므로 HashCode는 동일합니다.
System.out.println(str1.hashCode()+" : "+str2.hashCode());
//동일한 객체가 아니기 때문에 계산된 HashCode가 다릅니다.
//실제로 이 방법은 가장 독창적인 HashCode 계산 방법인 Object의 HashCode 계산 방법을 사용하고 있습니다.
System.out.println(System.identityHashCode(str1) + " : "+ System.identityHashCode(str2));
문자열 str3 = "안녕하세요";
문자열 str4 = "안녕하세요";
//상수 풀의 동일한 객체를 참조하므로 HashCode는 동일합니다.
System.out.println(System.identityHashCode(str3) + " : "+ System.identityHashCode(str4));
/*출력은 다음과 같습니다
-1554135584 : -1554135584
28705408 : 6182315
21648882 : 21648882
*/
}
런타임 클래스의 일반적인 사용법
모든 Java 애플리케이션에는 애플리케이션이 실행되는 환경에 연결할 수 있도록 하는 Runtime 클래스의 인스턴스가 있습니다.
다음과 같이 코드 코드를 복사합니다.
클래스 RunTimeTest
{
public static void main(String[] args)에서 예외가 발생했습니다.
{
getJvmInfo();
//실행테스트();
}
공개 정적 무효 getJvmInfo(){
//Java 런타임과 관련된 런타임 객체를 가져옵니다.
런타임 rt = Runtime.getRuntime();
System.out.println("프로세서 수:" + rt.availableProcessors()+" 바이트");
System.out.println("Jvm 총 메모리: "+ rt.totalMemory()+" 바이트");
System.out.println("Jvm 여유 메모리: "+ rt.freeMemory()+" 바이트");
System.out.println("Jvm에 사용할 수 있는 최대 메모리 양: "+ rt.maxMemory()+" 바이트");
}
public static void execTest()가 예외를 발생시킵니다.{
런타임 rt = Runtime.getRuntime();
//지정된 문자열 명령을 별도의 프로세스에서 실행합니다.
rt.exec("mspaint E://mmm.jpg");
}
}