黑马程序员技术交流社区

标题: Integer.valueOf()疑问 [打印本页]

作者: loading……99.9    时间: 2013-10-8 14:18
标题: Integer.valueOf()疑问
本帖最后由 loading……99.9 于 2013-10-8 18:48 编辑

System.out.println(Integer.valueOf(127) == Integer.valueOf(127));
System.out.println(Integer.valueOf(128) == Integer.valueOf(128));
输出结果,why?

作者: 高亮亮    时间: 2013-10-8 14:51
true
false
——————————————————————————————————————————————————
是不是因为valueOf会将常用的值(-128 to 127)cache起来。当i值在这个范围时,就是当这个值在-128和127之间时,会用缓存保存起来,供多次使用,以节约内存。 如果不在这个范围内,则创建一个新的Integer对象。
我也是新人,学习中……

作者: 天下    时间: 2013-10-8 15:27
因为数据在byte范围内,对于新特性,如果该数据已经存在,则不会再开辟空间
所以: Integer a=127   
          Integer b=127
a==b;            为:true
Integer a=128
Integer b=128
a==b;            为:false

作者: 黄文伯    时间: 2013-10-8 18:14
亲,请及时将"未解决"修改为"已解决"呀!




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