java outOfMemory(閾値:2147483647)について

javaの配列はint型の値で表されます。したがって、配列の最大インデックスはint型の上限値であり、その値は2の31乗から1を引いたものとなります。

int maxIndex = Integer.MAX_VALUE - 1;
System.out.println(maxIndex);

javaはゼロオリジンのため、0~2147483646の2147483647配列が上限となります。これを超える値を格納しようとすると、オーバーフローが発生します。

参考文献

https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Integer.html

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です