-
Runtime클래스java 2020. 5. 6. 22:16
Runtime
-Runtime클래스는 프로그램과 운영체제 간의 상호작용을 위한 메서드들이 정의되어 있다.
-프로그램이 실행이 되면 이미 Runtime클래스의 객체를 생성해서 가지고 있으며 이 객체의 주소 값을 얻어와서 사용하면 된다.
대표 메서드
-totalMemory() : 메모리 전체의 양을 알아온다.
-freeMemory() : 여유 메모리양을 알아온다.
-exec() : 운영체제에게 명령어를 전달한다.
-gc() : 메모리를 청소해준다.
정리
-Runtime 클래스는 운영체제와의 연동을 위해 제공되는 클래스이다.
-메모리 사용량 체크, 메모리 청소, 프로그램 실행 등 다양한 기능들이 제공된다.
public static void main(String[] args) {
// TODO Auto-generated method stub
//Runtime 객체를 얻어온다.
Runtime run = Runtime.getRuntime();
//메모리량
long total = run.totalMemory();
long free = run.freeMemory();
long used = total - free;
System.out.println("총 메모리"+total);//운영체제가 사용하고 있거나 운영체제가 사용하기 위해 할당한 메모리는 제외가 된다. 즉 프로그램이 사용할 수 있는 양만 체크를 한다.
System.out.println("여유 메모리"+free);
System.out.println("사용 메모리"+used);
//프로그램 실행
try {
run.exec("calc.exe");
run.exec("notepad.exe");
run.exec("explorer.exe http://www.naver.com");
} catch(Exception e) {
}
//메모리 청소
// 객체를 생성을 하면 메모리 자리를 잡게 되고 사용을 한다.
// 프로그램이 종료가 되면 프로그램상에서 생성한 모든 객체들은 자동으로 소멸이 된다.
// 프로그램이 실행 중에 이 객체를 사용을 안하기때문에 메모리에서 소멸시켜 버려야겠다는 경우,
// 메모리를 소멸하는 방법. 객체를 생성을해서 그 객체를 참조하는 참조변수가 하나도 없다라고 하면
// 해당 객체는 소멸의 대상이 된다. 소멸의 대상이 되는 객체들을 가르켜 가비지라고 부른다.
// runtimeClass는 메모리의 실제적인 청소작업은 운영체제의 판단하에 하게 되는데
// 개발자가 직접적으로 청소를 해라 라고 명령을 날리는 것.
// run.gc();
// System.gc();
// 메모리 청소하는 작업은 빈번하게 쓰면 안된다.
// 메모리를 청소하고 메모리에 대한 조각모음까지 실시를 하기 때문에
// 운영체제 입장에서 굉장히 부담이 가는 작업이다.
// 가비지 컬렉션 작업이 많아져 버리면 굉장히 부담되는 작업으로 동작을 하게 된다.
// 그렇기 때문에 가급적이면 사용하지 않고, 운영체제가 판단하에 메모리가 부족하다고 판단하면
// 그때 청소를 하게 되는데, 운영체제 판단 즉 자바버츄얼머신판단하에 청소가 될 수 있도록 놔두는 게 좋다.
// 가급적이면 쓰지 않고 꼭 필요할 때 쓰는 것이 좋다.
//
Vector v = new Vector();
v = null;
run.gc();
System.gc();
}참조 : 인프런 - 안드로이드를 위한 자바 - RuntimeClass
'java' 카테고리의 다른 글
StringBuffer (0) 2020.05.07 String (0) 2020.05.07 예외처리 (0) 2020.05.06 thread 동기화 (0) 2020.05.06 thread 우선순위 (0) 2020.05.06