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