Skip to content
Advertisement

Do Java arrays have a maximum size?

Is there a limit to the number of elements a Java array can contain? If so, what is it?

Advertisement

Answer

Haven’t seen the right answer, even though it’s very easy to test.

In a recent HotSpot VM, the correct answer is Integer.MAX_VALUE - 5. Once you go beyond that:

public class Foo {
  public static void main(String[] args) {
    Object[] array = new Object[Integer.MAX_VALUE - 4];
  }
}

You get:

Exception in thread "main" java.lang.OutOfMemoryError:
  Requested array size exceeds VM limit
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement