锁定老帖子 主题:java的Integer与int的区别
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2013-01-24
是的。这个值是做过研究的
|
|
返回顶楼 | |
发表时间:2013-01-25
其实就是java这个不支持运算符重载的短板!!如果有重载==就什么问题都没有了
|
|
返回顶楼 | |
发表时间:2013-01-25
对,java语言特性十几年了就没什么增强过,实在是土
|
|
返回顶楼 | |
发表时间:2013-01-28
所谓享元模式 应该是,使用的是相同一个Integer class ,然而你的 Integer 则是对,class的具体实例,自然要创建出两个对象,不然如何能存储两个变量名不相同的值了?
|
|
返回顶楼 | |
发表时间:2013-01-28
最后修改:2013-01-28
对象用==比较的时候 其实对比的指针执行的内存地址。 所以两个对象的值肯定不一样
要用equals 不过很奇怪。我记得 integer用==比较的时候是可以的啊,有个什么拆箱原理,会在编译时调用Intger.getValue()方法 |
|
返回顶楼 | |
发表时间: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 |
|
返回顶楼 | |
发表时间:2013-01-28
在-128到127范围,Integer做了缓存,故之间的数值相同的对象是同一对象,只要你会编译源码,你可以设置更大范围。
|
|
返回顶楼 | |