1. JVM에서의 공간

1.1 JVM 구조



1.2 코드

public class Test {

   public static void main(String[] args){

       int[] p1 = new int[5];

       int[] p2 = new int[3];

       int[] p3 = p1;

 

       p3[2] = 100;

 

       System.out.println(p1[2]);

 

       p2 = p1;

   }

}

 

 

1.3 공간모습

 *stack: 메소드를 호출할 때마다 메모리가 쌓인다, 처음에 쌓였던 메모리가 가장 늦게 반환된다 => main()이 가장 늦게 반환된다

            main메모리 생성 -> p3 변수 메모리 생성 -> p3 변수 메모리 반환 -> main 메모리 반환

            (p1, p2는 new로 생성했으므로 stack이 아닌 heap영역 )

 


2. garbage colection(가비지 컬렉션)이란?

  • garbage : 참조하는 변수가 없는 메모리
  • garbage collectior: garbage memory를 해제하는 객체(heap 영역을 관리), 자동으로 실행된다.

 

2.1 garbege는 언제 청소될까?

  • idle time(운영체제가 한가한 시간에)
  • 메모리가 부족할 때

    * garbage가 생겼다고 garbage collection가 즉시 작동하는 것은 아니며, 무조건 작동하는 것은 아니다.

      (프로그램이 잠깐 실행되는 경우에는 garbage collection이 작동하지 않는다.)

 

2.2 garbage를 최소하 하기 위해서는?

  • 디자인 패턴에 따라 코드를 짜서 garbage생성을 최소화 하라!



3. 첨부파일

JAVA_garbageCollection.pptx


'개발 > Java' 카테고리의 다른 글

[JAVA] array(배열)  (0) 2017.01.01
[JAVA] 객체  (0) 2016.12.31
[JAVA] "인스턴스변수VS 메소드"와 "클래스 VS 객체"  (0) 2016.12.31
[JAVA] 기초03  (0) 2016.12.31
[JAVA] 기초 - 주석  (0) 2016.12.31

+ Recent posts