java.util.List 的大小

今天在看API的時候,忽然看見List對象的size()方法返回的是int類型,於是就想知道是不是隻能存放int的最大數值2147483647個。

但是,用自己電腦跑了一下,代碼如下:

public static void main(String[] args) {
List<String> list = new ArrayList<String>();
for(long i = 0 ; i < Long.MAX_VALUE ; i++){
list.add("" + i);
System.out.println(i);
}
}

跑到11451102就內存溢出了,

11451098
11451099
11451100
11451101
11451102
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2760)
at java.util.Arrays.copyOf(Arrays.java:2734)
at java.util.ArrayList.ensureCapacity(ArrayList.java:167)
at java.util.ArrayList.add(ArrayList.java:351)
at com.peter.list.AboutListSize.main(AboutListSize.java:14)

而且,不知道哪位大神有沒有跑多,Long類型的最大數9223372036854775807能不能跑到呢?


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章