我们先来看下ArrayList的add方法
add(Object obj) 即要求参数为Object类型
那么,add(23)时,发生了什么呢?
这里有一个装箱的过程- public static Integer valueOf(int i) {
- final int offset = 128;
- if (i >= -128 && i <= 127) { // must cache
- return IntegerCache.cache[i + offset];
- }
- return new Integer(i);
- }
复制代码 所以问题1的答案:集合中只能放对象,如果放入基本数据类型,将会自动装箱并放入集合中。
继续:
因为String本身不是基本数据类型,是引用数据类型,所以无需装箱,可以直接放入集合中,
所以问题2的答案:无需new String();
|