[Java 9-2 RuntimeApp] Runtime : Java 프로그램을 실행하는 JVM 관련 정보를 저장하기 위한 클래스

임승현·2022년 10월 16일

Java

목록 보기
30/126
package oop;

public class RuntimeApp {
	public static void main(String[] args) {
		//Runtime : Java 프로그램을 실행하는 JVM 관련 정보를 저장하기 위한 클래스
		//=> 생성자가 은닉화 선언되어 있어 new 연산자로 객체 생성 불가능
		//=> 프로그램에 객체를 하나만 제공하기 위한 클래스 - 싱글톤 클래스(Singleton Class)
		//Runtime runtime1=new Runtime();
		
		//Runtime.getRuntime() : Runtime 객체를 반환하는 정적 메소드 - 클래스로 호출
		//=> getRuntime() 메소드를 여러번 호출해도 같은 객체를 반환
		Runtime runtime1=Runtime.getRuntime();
		Runtime runtime2=Runtime.getRuntime();
		
		System.out.println("runtime1 = "+runtime1);
		System.out.println("runtime2 = "+runtime2);
		System.out.println("=======================================================");
		//Runtime.totalMemory() : JVM이 사용 가능한 전체 메모리의 크기(Byte)를 반환하는 메소드
		//Runtime.freeMemory() : JVM이 사용 가능한 여유 메모리의 크기(Byte)를 반환하는 메소드
		//싱글톤 클래스는 객체를 반환받아 참조변수에 저장하여 사용하지 않고 객체를 반환받아
		//직접 메소드를 호출하여 사용
		//System.out.println("청소 전 JVM 사용 메모리 크기 = "
		//		+(runtime1.totalMemory()-runtime1.freeMemory())+"byte");
		//싱글톤 클래스는 객체를 반환받아 참조변수에 저장하여 메소드를 호출하지 않고 객체를
		//반환받아 직접 메소드를 호출하여 사용하는 것을 권장
		System.out.println("청소 전 JVM 사용 메모리 크기 = "
				+(Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory())+"Byte");
		System.out.println("=======================================================");
		
		//Runtime.gc() : 메모리를 청소하는 가비지 콜렉터(Garbage Collector)를 실행하는 메소드
	    //Runtime.getRuntime().gc();
		System.gc();//카비지 콜렉터(Garbage Collector)를 실행하는 정적 메소드
		
		System.out.println("청소 후 JVM 사용 메모리 크기 ="
				+(Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory())+"Byte");
		System.out.println("=======================================================");
	}
}

0개의 댓글