论坛首页 入门技术论坛

java的Integer与int的区别

浏览 8196 次
该帖已经被评为新手帖
作者 正文
   发表时间:2013-01-24  
是的。这个值是做过研究的
0 请登录后投票
   发表时间:2013-01-25  
其实就是java这个不支持运算符重载的短板!!如果有重载==就什么问题都没有了
0 请登录后投票
   发表时间:2013-01-25  
对,java语言特性十几年了就没什么增强过,实在是土
0 请登录后投票
   发表时间:2013-01-28  
所谓享元模式 应该是,使用的是相同一个Integer class ,然而你的 Integer 则是对,class的具体实例,自然要创建出两个对象,不然如何能存储两个变量名不相同的值了?
0 请登录后投票
   发表时间:2013-01-28   最后修改:2013-01-28
对象用==比较的时候 其实对比的指针执行的内存地址。 所以两个对象的值肯定不一样

要用equals

不过很奇怪。我记得 integer用==比较的时候是可以的啊,有个什么拆箱原理,会在编译时调用Intger.getValue()方法
0 请登录后投票
   发表时间:2013-01-28  
leonayx123 写道
对象用==比较的时候 其实对比的指针执行的内存地址。 所以两个对象的值肯定不一样

要用equals

不过很奇怪。我记得 integer用==比较的时候是可以的啊,有个什么拆箱原理,会在编译时调用Intger.getValue()方法

      
你是指这个吗?
Integer i1 = 128;
        Integer i2 = 128;
        System.out.println(i1 == i2);  {false}
    Integer i1 = 128;
        Integer i2 = 128;
              System.out.println(i1 == i2);  {true}
Integer拆箱原理阀值是128
0 请登录后投票
   发表时间:2013-01-28  
在-128到127范围,Integer做了缓存,故之间的数值相同的对象是同一对象,只要你会编译源码,你可以设置更大范围。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics