《深入理解java虚拟机》自动装箱拆箱实例

来源:互联网 发布:抽数字软件 编辑:程序博客网 时间:2024/06/03 21:35

本人维护的一个网站发现了Bug,一段代码里面使用“==”对两个Integer对象进行比较,发现如果两者的值都在-128到127时(-128<=a,b<128),比较结果为true。但如果其中之一或者两者都不在这个范围内(<-128或>=128),比较结果为false。究其原因,原来是Java的Integer实现中,把从-128到127的值(准确的说是值在这个范围内的Integer实例)进行了缓存,所以用户直接实例化得到的都是缓存,所以"=="比较结果为true。


网上找到一下这个哥们的一篇博文,收藏供以后复习。


《深入理解java虚拟机》自动装箱拆箱实例


0 0
原创粉丝点击