life is egg

[JAVA] 배열의 최대 크기 본문

개인공부/JAVA

[JAVA] 배열의 최대 크기

삶은계란진재혁 2023. 7. 30. 11:46

알고리즘 깨작깨작 느리게 풀다보니까 int를 멀리하고 long을 쓰게 되는 중이였다

 

그러던중 배열에도 자연스레 long[][] 을 선언하고 안에 들어가는 사이즈도 long으로 받을려고 했는데

 

인텔리제이가 오류를 뿜뿜하고 추천으로 (int)로 명시적 형변환을 하라고 한다

그래서 찾아본 .. java 배열 사이즈는 왜 int형으로만 받는가 ..!

 

프로그래밍 언어의 설계와 메모리 관리에 관련된 이유로 이해할 수 있다..!
  • 메모리 관리 :
    • 배열은 메모리 상에 연속된 공간을 차지, 각요소는 인덱스를 통해서 접근한다. 배열의 크기는 해당 배열이 차지하는 메모리 공간을 의미하며, 이 크기는 배열이 생성 될때 한번 결정 되고 변경 할 수 없음..!
  • int 형의 범위:
    • int는 32비트 크기로 대부분의 경우 충분한 범위를 제공 (대략 -21억~21억까지의 값)
  • 다른 데이터 타입 활용:
    • 배열의 크기에는 음수 값이 들어가지 않음, 또한 int형으로도 충분... 더 큰 크기를 필요로 할때는 배열의 요소로서 객체를 사용하는 것도 가능하기 때문에 이를 통해 크기 제한을 피할 수 있따..
  • 메모리 효율성:
    • 더 큰 데이터 타입을 사용하여 배열의 크기를 지정할 경우, 더 많은 메모리를 사용하게 되어 메모리 효율성이 저하될 수 있다 

 

 

그래서 최대 크기는.?!

JVM과 시스템 메모리의 제한에 따라 다르지만 

Java 배열은 32비트의 정수형을 사용하여 인덱스를 표헌하기 때문에 배열의 크기는 이 인덱스의 범위 내에서 결정 되어야 한다 ..!

 

 

Java) new int[Integer.MAX_VALUE] (tistory.com)

 

Java) new int[Integer.MAX_VALUE]

Large arrays public static void main(String[] args) { int[] arr = new int[Integer.MAX_VALUE]; } 카운팅 정렬(Counting sort)를 실습해 보려고 이것 저것 배열을 만들어 보던 도중, 위의 코드를 실행하자 에러가 발생 했습니

shanepark.tistory.com

 

'개인공부 > JAVA' 카테고리의 다른 글

Java의 synchronized  (3) 2024.11.19
[JAVA] G..C  (2) 2023.10.19
[JAVA] sort... 그 무언가..  (0) 2023.06.19
Comments