詳情解釋請看下方代碼區 點擊查看代碼 @Test public void test1(){ //實例化:now()獲取當前日期、時間、日期 + 時間 LocalDate localDate = LocalDate.now(); LocalTime localTime = LocalTime.now( ...
1. 概述
本文我們看一下Java數組的最大長度。
2. Max Size
Java中只能定義一個確定大小的數組,它的最大值取決於我我們使用的JVM和系統。由於數組的索引是int,所以最大的索引是2^31-1。數組理論上可以存儲2147483647個元素。
下麵的示例中,在Linux和Mac上使用Java8和Java15的OpenJDK和OracleJDK,在整個測試過程中,結果都是一樣的。
驗證代碼:
public class Hello {
public static void main(String[] args) {
for (int i = 2; i >= 0; i--) {
try {
int[] arr = new int[Integer.MAX_VALUE - i];
System.out.printf("Max-Size: %s\n", arr.length);
} catch (Throwable t) {
t.printStackTrace();
}
}
}
}
在Linux或Mac平臺上執行上面的代碼相同的結果。執行期間傳遞參數:VM arguments -Xms2G -Xmx2G,返回下麵異常信息
註意到第一個異常與後兩個異常不同。後兩個錯誤提到了VM限制,而第一個錯誤是關於堆記憶體限制。
下麵來試一下用**VM arguments _-Xms9G -Xmx9G **_來執行看一下:
結果可以看到最大值為2,147,483,645。
這個結果同樣適用於byte、boolean、long和其他數據類型。
3. ArraySupport
ArraySupport是OpenJDK的工具類,建議數組的最大長度為Integer.MAX_VALUE-8。
4. 總結
本文我們看到了Java中數組的最大長度。