JAVA/요약

JVM구조와 메모리 모델

gandus 2010. 9. 27. 12:35

JVM구조와 메모리 모델




메소드 영역
- 매소드와 클래스 영역에 관한것을 저장한다.
- 클래스 변수도 포함

힙 영역
- 객체가 들어간다.

스택 영역
- 매개, 지역변수가 들어간다.

*      메소드 영역(Method area)

ü  메소드와 클래스 변수를 저장하기 위한 공간

ü  모든 프로그램에 의해 공유

*      힙 영역(Heap area)

ü  동적으로 할당하여 사용할 수 있는 메모리

ü  주로 실행시간에 생성되는 객체를 저장

*      스택 영역(Stack area)

ü  메소드 호출 시 메소드의 매개변수, 지역변수, 임시변수 등을 저장하기 위한 스택 구조의 메모리

ü  실행중인 프로그램에 따라 스택 프레임 할당




 - > 함수가 돌아가는 상황을 보여준다.



class MemoryTest3 {

           public static void main(String[] args) {

        int a[] = new int[] {1,2,3};               - > 1,2,3 이라는 배열을생성

               a = new int[] {5,6,7,8};            ->  1,2,3 배열은 쓰레지 수집되고, 새로운 5,6,7,8이란 배열이 생성된다.

               System.out.println(a[3]);   //1

               int b[][] = new int[][] {{1,2,3},{4,5},{6,7,8,9}};  -> 2차원 배열을 생성한다.

               System.out.println(b[2][3]);   //2


           
    String s1 = "Hi Java";       -> 스트링 객체를 생성

               System.out.println(s1);

               String s2[] = new String[] {"Hi","Java"};

               System.out.println(s2[1]);    //3

           }

}