黑马程序员技术交流社区

标题: 看视频的一些不解 [打印本页]

作者: 七道    时间: 2013-11-13 17:27
标题: 看视频的一些不解
本帖最后由 七道 于 2013-11-13 21:02 编辑

和老师的代码一样,怎么会报错。求解决

}%0JFUDA5F(1S~2EC}Q}VHB.jpg (30.22 KB, 下载次数: 21)

}%0JFUDA5F(1S~2EC}Q}VHB.jpg

作者: 低调的奢华    时间: 2013-11-13 18:01
本帖最后由 低调的奢华 于 2013-11-13 18:02 编辑

getClass这个方法获得是一个实例的类型类,类型类指的是代表一个类型的类,这是概念。
  1.                 int[] a1 = new int[5];
  2.                 int[] a2 = new int[4];
  3.                 String[] a4 = new String[6];
  4.                 System.out.println(a1.getClass()==a2.getClass());
  5.                 System.out.println(a1.getClass());
  6.                 System.out.println(a4.getClass());
  7.                 System.out.println(a1.getClass().equals(a4.getClass()));;
复制代码
运行一下你就知道了!
作者: 七道    时间: 2013-11-13 18:38
低调的奢华 发表于 2013-11-13 18:01
getClass这个方法获得是一个实例的类型类,类型类指的是代表一个类型的类,这是概念。运行一下你就知道了! ...

老师好像说返回的是字节码,怎么老师的可以,这个我很无语。
作者: gh112233    时间: 2013-11-13 19:35
我的理解是==是比较两个类型的地址。String和int不是同一种数据类型。你把其中一个转换成object貌似就可以比较了。
作者: 低调的奢华    时间: 2013-11-13 19:57
首先如果你确定你的代码没有写错的话,可能就是jdk版本的问题了,低版本可以运行的代码随着版本的升级有些东西是不能用的!
作者: 七道    时间: 2013-11-13 20:45
低调的奢华 发表于 2013-11-13 19:57
首先如果你确定你的代码没有写错的话,可能就是jdk版本的问题了,低版本可以运行的代码随着版本的升级有些 ...

这个我就不清楚了,我的jdk是1.6的
作者: 低调的奢华    时间: 2013-11-13 20:52
刚帮你查了下 :
对于数组类型的变量编译器在编译时,其实已经知道类型了。也就是说,编译器认为这2个类型是不一样的。根本没有比较的需要。
对于总是不成立的比较,其实是没有意义的。这个编译错误是 JDK 1.6的新功能

作者: 七道    时间: 2013-11-13 21:01
低调的奢华 发表于 2013-11-13 20:52
刚帮你查了下 :
对于数组类型的变量编译器在编译时,其实已经知道类型了。也就是说,编译器认为这2个类型是 ...

好的,知道了
作者: 狼王    时间: 2013-11-14 07:46
为了黑马,为了美好的未来,加油哈,兄弟
作者: 七道    时间: 2013-11-14 08:12
狼王 发表于 2013-11-14 07:46
为了黑马,为了美好的未来,加油哈,兄弟

加油,兄弟!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2