new int[] arr

HwangJerry·2023년 5월 31일
0

문제 제기


int는 객체가 아님에도 배열 선언시에 new 연산자를 사용하는 것이 갑자기 이질적이여서 찾아보게 되었습니다.

int[] arr1 = new int[]; // 동적 크기 할당되는 배열 생성
int[] arr2 = new int[5]; // size가 5인 배열 생성

해결


자바에서 기본 데이터 타입인 int는 객체가 아니라 원시 타입(primitive type)입니다. 따라서 int 타입 변수를 선언할 때는 메모리에 해당 변수를 직접 저장합니다.

하지만 new int[]처럼 int 배열을 생성할 수 있는 이유는, 자바에서 배열은 객체로 취급되기 때문입니다. 배열은 객체의 일종으로 간주되어 메모리에 배열을 저장하고 배열에 대한 참조(reference)를 변수에 할당합니다.

따라서 new int[] 문법을 사용하면 동적으로 크기가 지정된 int 배열을 생성할 수 있습니다. 이 배열은 힙(heap) 메모리에 할당되며, 배열의 크기에 맞게 연속된 메모리 공간을 차지합니다. 그리고 배열에 대한 참조는 변수에 저장되어 사용됩니다.

profile
알고리즘 풀이 아카이브

0개의 댓글