int[] i1 = new int[]{1,2,3};
int[] i2 = new int[4];
int[][] i3 = new int[3][5];
String[] strArr = new String[]{"a","b","c"};
//对于相同的类型 并且都是一位数组 那么他们的类的字节码是相等的
System.out.println(i1.getClass() == i2.getClass());//true
//System.out.println(i1.getClass() == i3.getClass());//false
//[I 代表是一个数组 类型是Int的
System.out.println(i1.getClass().getName());//[I
//获取父类的
System.out.println(i1.getClass().getSuperclass().getName());//java.lang.Object
System.out.println(strArr.getClass().getSuperclass().getName());//java.lang.Object
Object obj1 = i1;
Object obj2 = i2;
Object obj3 = i3;
//这种编译不过去 因为i1 是一个int数组 基本数据类型不是Object 所以不对
//Object[] obj4 = i1;
//这种是因为i3是一个二维数组 相当于i3数组里 有一个int[]数组 int[]是Obejct 所以可以
Object[] obj5 = i3;
//这种是因为strArr是一个String的数组 String是Object 所以可以
Object[] obj6 = strArr;
//直接打印数组
System.out.println(i1);//I@14318bb
System.out.println(strArr);//[Ljava.lang.String;@ca0b6
//吧数组转换成List集合对象
System.out.println(Arrays.asList(i1));//[[I@14318bb]
System.out.println(Arrays.asList(strArr));//[a, b, c]
//为什么i1不行呢???不能在这转成一个List把结果输出呢???
//jdk1.5的 参数是一个可变的 当成一个Object 问不是一个数组
//public static <T> List<T> asList(T... a)
//jdk1.4的 参数是一个Object数组 当成一个Object数组
//public static <T> List<T> asList(Object[] obj)
//看这两个方法的参数就明白了
//刚刚上面还说i1数组是int类型 基本数据类型int不是Object 所以就不能转换成一个List
//而strArr数组是一个String类型 String是Object 所以可以