2013-07-19 7 views
-1

내가 혼란 스러워요을 의미 하는가 :: 여기배열 할당

int[] array = new int[0]; 

을 할당 얼마나 많은 바이트? 아니면 아무것도 메모리에 할당됩니다? 밑에는 무엇이 있을까요?

+0

[이유는 int []입니다 왜 a = 새로운 int [0]; allow?'] (http://stackoverflow.com/questions/13444414/why-is-int-a-new-int0-allowed)를 사용하십시오. –

답변

4

길이가 0 인 배열입니다.

할당되는 바이트 수는 플랫폼에 따라 다르지만 배열은 여전히 ​​매우 짧습니다. 일반적으로 Java 배열의 배열은

fixed overhead + length * componentSize 

바이트입니다. 그런 다음 패딩이있을 수 있습니다.

배열은 Java로 크기를 조정할 수 없으며 길이가 0 인 배열은 요소를 업데이트 할 수 없으므로 변경되지 않으며 전체 프로그램에서 둘 이상의 인스턴스가 실제로 필요하지 않습니다. ArrayUtils.EMPTY_INT_ARRAY과 같은 정적 싱글 톤을 사용하여 "고정 오버 헤드"를 절약 할 수 있습니다.