简单来说,基本数据类型不是对象,而包装类是对象。
通过对数组以及对数组方法asList()的深入了解,对对象这一概念又有的更深刻的认识。
每一个对象都会拥有属于自己的属性和方法,这一点基本数据类型是没有的。今天在学习asList()方法的时候,在输出基本数据类型数组和包装类数组的时候出现了不同,经各种了解,明白了其中含义。下面是代码和输出结果
public class collectionText2 {
public static void main(String[] args) {
List<Integer> strings = Arrays.asList(new Integer[]{1,2,3});
System.out.println(strings);
List<int[]> ints = Arrays.asList(new int[]{1, 2, 3});
System.out.println(ints);
}
}
输出结果
其实就是对象的概念,首先asList()方法中的参数是可变参数,
Integer是包装类,所以Integer[]是对象数组,1,2,3都是对象,所以asList()会将每一个对象都转化为List中的元素,而输出对象时会调用对象的toString()方法,包装类中重写了toString()方法,所以输出1,2,3.
而基本数据类型数组中的每一个成员都是常量,不是对象,我们都知道数组是一个对象,所以基本数据类型数组只有一个对象,就是数组本身,所以转换为List时只会转换一个对象,而每个对象都会继承Object类,基本类型数组无法重写toString()方法,只能使用Object中的toString()方法,所以返回结果为 数据类型名称+@+哈希码。