今天在看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能不能跑到呢?