본문 바로가기

프로그래밍 언어 (プログラミング言語)/JAVA

레퍼런스 배열과 실제 객체의 메모리 할당 in JAVA

 

우선 Stack 영역에 변수 name이 할당되고, 그 안에 heap 내의 레퍼런스 배열의 시작 주소가 담겨 있다.

이때, 유념해야 할 것이 있다. 

배열이란 본래, 같은 타입의 [연속적인] 메모리 공간이다. 

고로, 배열의 메모리 상의 위치가 연속적으로 할당이 될 것 같이 생각을 한다.

반은 맞고 반은 틀리다.

Heap 내의 [레퍼런스 배열]에 대해서는 물리적으로 연속적으로 위치하지만,

실제 String 객체는 java를 비롯한 대부분의 High Level Language는 위 그림과 같이 heap내에서 연속적이 아니라 띄엄 

띄엄 위치해 있다.