a6是二维数组,就是数组中包含数组,所以a6中有三个int[],int[]是object,System.out.println(Arrays.asList(a6));这句话打印的是a6中每个int[]的哈希值;Integer对应的是object[]
,我把a6类型改成Integer,最后打印a6中的每个数组;- import java.util.Arrays;
- public class Test {
- private static Integer[] integers;
- public static void main(String[] args) {
- int[] a1 = new int[]{1,2,3};
- int[] a2 = new int[4];
- int[][] a3 = new int[2][3];
- String[] a4 = new String[]{"a","b","c"};
- Integer[] a5 = new Integer[]{1,2,3};
- Integer[][] a6 = {{1},{2},{3}};
-
- //比较字节码是否相等
- System.out.println(a1.getClass() == a2.getClass());
- //System.out.println(a1.getClass() == a3.getClass()); 编译时出错
- //System.out.println(a1.getClass() == a4.getClass()); 编译时出错
-
- //获取a1的字节码的名字 :[I 整形数组
- System.out.println(a1.getClass().getName());
- //获取a1父类的字节码的名字 :java.lang.Object
- System.out.println(a1.getClass().getSuperclass().getName());
- //获取a4父类的字节码的名字 :java.lang.Object
- System.out.println(a4.getClass().getSuperclass().getName());
-
- //以下可以得出int[]和String是Object ,而int[][]和String[]是Object[]
- Object obj1 = a1;
- Object obj2 = a2;
- // Object[] obj3 = a1;
- Object[] obj4 = a4;
- Object[] obj5 = a4;
- Arrays.asList();
- System.out.println(a1); //[I@145c859
- System.out.println(a4); //[Ljava.lang.String;@64883c
- System.out.println(Arrays.asList(a1)); //[[I@145c859] int[]是Object,所以返回的一个对象的列表
- System.out.println(Arrays.asList(a4)); //[a, b, c] String[]是Object[],所以返回是多个对象的列表
- System.out.println(Arrays.asList(a5)); //[1, 2, 3] Integer[]是Object[],所以返回是多个对象的列表
- System.out.println(Arrays.asList(a6[0])); //[[I@785d65, [I@3bc257, [I@153f67e] int[][]是Object[],所以返回是多个对象的列表
- System.out.println(Arrays.asList(a6[1])); //[[I@785d65, [I@3bc257, [I@153f67e] int[][]是Object[],所以返回是多个对象的列表
- System.out.println(Arrays.asList(a6[2])); //[[I@785d65, [I@3bc257, [I@153f67e] int[][]是Object[],所以返回是多个对象的列表
- }
- }
复制代码 最后输出一行结果是:[1] [2] [3]
这只是我的想法,希望对你有帮助。 |