반응형
이두가지의 차이점은 간단하다 기본타입은 byte,char,int,long,float,duble,boolean을이용해서 선언된 변수는 실제 값을 변수 안에 저장하지만 참조 타입인 배열,열거,클래스,인터페이스를 이용해서 선언된 변수는 메모리의 번지를 값으로 갖는다.번지를 통해 객체를 참조한다는뜻에서 참조타입이라고 한다.따라서 기본타입은 변수가 스텝 영역에생성되고 객체는 힙영역에 생성된다.
힙(Heep)
- 힙은 객체와 배열이 생성되는 영역이다. 힙 영역에 생성된 객체와 배열은 JVM 스택 영역의 변수나 다른 객체의 필드에서 잠조한다.참조하는 변수나 필드가 없다면 의미 없는 객체가 되기 때문에 이것을 쓰레기로 취급하고 JVM은 쓰레기 수집기(GarbageCollector)를 실행시켜 쓰레기 객체를 힙영역에서 자동으로 제거한다.
스텍(Stack)
- 스텍은 각 스레드마다 하나씩 존재하며 스레드가 시작될 때 할당한다 자바 프로그램에서 추가적으로 스레드를 생성하지 않았다면 main 스레드만 존재하므로 JVM 스택도 하나이다. JVM스텍은 메소드를 호출할 때마다 프레임을 추가 하고 메소드가 종료되면 해당프레임을 제거 하는 동작을 수행한다. 따라서 변수가 이영역에 생성되는 시점은 초기화가 될때 즉 최초로 변수에 값이 저장될때이다. 변수는 선언된 블록 안에서만 스텍에 존재하고 블록을 벗어나면 스택에서 제거된다.
반응형