Java整型數組的最大長度到底有多長? 今天上網查了一下,各種說法都有,這個問題似乎總困擾我們Java初學者,無奈,只好自己試了一下,以下是我的測試代碼,如果有錯誤,還望不吝賜教! 使用eclipse默認的vm arguments,運行以下代碼: public static void main(String[] args) { byte[] array=new byte[61858764]; // short[] shortArray=new short[30929382]; // int[] intArray=new int[15464691]; // long[] longArray=new long[7732345]; } 成功,沒有報錯,可知在eclipse默認的vm arguments下,byte數組的最大長度是61858764,將近60M。由於short的長度比byte大一倍,所以short數組的最大長度是30929382,是byte數組最大長度的一半,以此類推,int數組最大長度是15464691,long數組最大長度是7732345 我以為這就是最終結果,后來突然想起修改虛擬機的最大內存,也是這個結果嗎? 我把eclipse的vm arguments設置修改為:-Xms256M -Xmx768M 再次測試代碼,發現byte數組的最大長度可以更長, 通過Windows任務管理器可知,運行代碼的javaw.exe進程占用的內存也更大(廢話,呵呵) 到此為止,應該可以得出結論,通過修改虛擬機的最大內存,java整型數組的最大長度可以很長,但到底有多長?(肯定比內存小) 我試過定義一個byte數組的長度為618587640,將近600M,沒有報錯,更長的數組似乎沒有意義,我也沒有測試。 ps:以上測試,我只是定義這么長的數組,並沒有對這些數組進行操作, 所以不敢保證實際操作數組時不報錯(我偷懶了) 而且,我只是對整型數組進行測試,沒有對其他類型數組測試,不敢保證其他類型數組是否也符合這個結論 (又偷懶了)