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