黑马程序员技术交流社区
标题:
java Integer ==的比较 如下代码,求大神解答
[打印本页]
作者:
saiqqww234
时间:
2016-5-3 23:25
标题:
java Integer ==的比较 如下代码,求大神解答
下列代码在JDK1.5以上版本执行的结果是? public class Example {
public static void main(String[] args) {
Integer i = 10; Integer j = 10;
System.out.println(i == j);
i = 210; j = 210;
System.out.println(i == j); } }"
结果为什么是 true false
作者:
jeromeZhang
时间:
2016-5-3 23:40
查看 Integer原码你会发现一个叫做 IntegerCache 内部类,里面定义了一个(-128~127)的数组,当你把常量赋值给一个Integer类型的时候,会默认去那个常量池里面找,如果在这个常量池里面,就直接获取它的地址值(即相当于两个对象指向一个地址值),如果不在这个常量池里面,就会新创建对象,你后面的值已经超出常量池的范围了,相当于new了两个对象,地址值当然不同乐
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2