ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

    댓글

Designed by Tistory.