heap2 [JAVA] String 데이터 타입, String pool 목차 String 객체 String Interning literal vs new String() 참조 String 객체 String 데이터 타입은 기본형이 아니라 객체입니다. 따라서 Stack에 값이 바로 저장되지 않고 Heap영역에 저장되고, 그 주소 값을 참조하는 변수가 stack에 쌓이게 됩니다. (아래 그림 참고) Heap에 저장할 때는 Heap 안의 String pool에 저장합니다. String Interning String 객체가 리터럴로 할당된다면 Heap 영역의 String Constants Pool에 저장되어 관리합니다. 기본적으로 pool안의 객체는 불변성 (Immutability)을 띄며 이 얘기는 값의 수정이 없고, 같은 값이 선언된다면 같은 객체를 참조하도록 한다는 의미입니다. .. 2022. 1. 28. [JAVA] stack, heap (스택과 힙) 메모리 런타임 목차 자바의 메모리 영역 스택 (stack) 힙 (heap) 가비지 컬렉션 (Gabage Collection) 자바의 메모리 영역 자바의 메모리 구조는 크게 스택과 힙으로 나뉩니다. 스택 (stack) 기본 타입 (long, int, boolean,...)은 값을 실제로 저장 heap에 저장된 객체 (object 타입)의 주소값을 저장 scope 별 stack 영역 할당 스레드 별 독립적인 stack 할당 스택의 동작 과정은 간단히 다음과 같습니다. public class Test { public static void main(String[] args) { int arg = 2; /*1*/ arg = plusOne(argument); /*4, 5*/ } private static int plusOne(i.. 2022. 1. 26. 이전 1 다음