java封装类Integer和Long使用
博客专区 > pacey 的博客 > 博客详情
java封装类Integer和Long使用
pacey 发表于3个月前
java封装类Integer和Long使用
  • 发表于 3个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

其中非常常见的一个是比较两个Long或Integer时直接使用的==来比较。 其实这样是错误的。

 

因为Long与Ineger都是包装类型,是对象。  而不是普通类型long与int , 所以它们在比较时必须都应该用equals,或者先使用longValue()或intValue()方法来得到他们的基本类型的值然后使用==比较也是可以的。

 

但是有一种特殊情况, 其实Long与Integer都将 -128~127 这些对象缓存了。  可以看看Long类型源码里面有一个LongCache类,代码如下:

  1. private static class LongCache {  
  2.     private LongCache(){}  
  3.   
  4.     static final Long cache[] = new Long[-(-128) + 127 + 1];  
  5.   
  6.     static {  
  7.         for(int i = 0; i < cache.length; i++)  
  8.         cache[i] = new Long(i - 128);  
  9.     }  
  10.     }  

 

所有在使用封装类中,尽量使用equal方法来比较值。

共有 人打赏支持
粉丝 0
博文 25
码字总数 8465
×
pacey
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: