A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宋旭东 中级黑马   /  2013-7-2 22:47  /  914 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天听张孝祥老师讲反射,然后自己试了一下代码 竟然出现下面的问题,真是搞不懂
  • int[] a1 = new int[] {1, 2, 3};
  •                 int[] a2 = new int[] {1, 2, 3, 4};
  •                 int[][] a3 = new int[2][3];
  •                 String[] a4 = new String[]{"a", "b", "c"};
  •                 System.out.println(a1.getClass().getName() == a2.getClass().getName());
  •                 //下面这段代码,编译为什么通不过?
  •                 System.out.println(a1.getClass() == a3.getClass());
  •                 //下面这段代码编译是可以通过的
  •                 System.out.println(a1.getClass().getName() == a3.getClass().getName());


评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

1 个回复

倒序浏览
int[] a1 = new int[] {1, 2, 3};
                               int[] a2 = new int[] {1, 2, 3, 4};
                                int[][] a3 = new int[2][3];
                        String[] a4 = new String[]{"a", "b", "c"};
               
                               System.out.println(a1.getClass().getName() == a2.getClass().getName());
                                //下面这段代码,编译为什么通不过?//因为是生成字节码对象的类型不一样,一个是一维数组,一个是二维数组。如果是把a3改为a2就OK.还不理解的话,就像  int i = 0;String str = "kk";System.out.println(i == str);,一样。类型不一致是不能比较的。
                            //System.out.println(a1.getClass() == a3.getClass());            
                           
                       //下面这段代码编译是可以通过的
                               System.out.println(a1.getClass().getName() == a3.getClass().getName());

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马