Long的比较要用equals而不要用==

当Long为常量且常量值小于一个字节(<=127)时,两个Long指向同一个常量内容;

        Long userId=127L;
Long authorId=127L;
System.out.println(userId==authorId);//true

当Long为常量且常量值大于一个字节(>127)时,两个Long指向不同的常量内容。

        Long userId=128L;
Long authorId=128L;
System.out.println(userId==authorId);//false

当Long是引用类型时,比较两个Long的大小,一定要用equals而不能用==

        Long x=new Long(18);
Long y=new Long(18);
System.out.println(x==y);//false
System.out.println(x.equals(y));//true

原因:Java 基本类型的包装类的大部分都实现了常量池技术,即Byte,Short,Integer,Long,Character;这5种包装类默认创建了数值[-128,127]的相应类型的缓存数据,但是超出此范围仍然会去创建新的对象。

最新文章

  1. java数组对象的浅层复制与深层复制
  2. 在canvas中使用html元素
  3. Project Serve 2013部署方法
  4. linux内核分析课程笔记(二)
  5. hadoop yarn configure
  6. Linux驱动设计—— 驱动调试技术
  7. 使用 T4 文本模板生成设计时代码
  8. jQuery EasyUI求助
  9. asp.net分页代码(教你怎么实现)
  10. 网络请求 get post
  11. 课堂练习6--统计txt文本
  12. 家庭记账本小程序之增(java web基础版三)
  13. iOS代码块block使用
  14. bzoj3932 / P3168 [CQOI2015]任务查询系统(主席树+差分)
  15. C++ Programming Language中的Calculator源代码
  16. python 字符串的I/O 操作
  17. GreenPlum学习笔记:create or replace function创建函数
  18. EJB介绍
  19. ip地址库选择
  20. 多线程-CountDownLatch,CyclicBarrier,Semaphore,Exchanger,Phaser

热门文章

  1. [原]Jenkins(四)---Jenkins添加密钥对
  2. iOS - 富文本直接设置文字的字体大小和颜色
  3. Javascript合并表格相同内容单元格示例
  4. pfSense软件防火墙安装配置
  5. db2 活动日志激增的原因分析处理
  6. 如何打jar包 学习笔记
  7. PAT甲级1061 Dating
  8. c语言笔记 数组2
  9. jdbc ---- DBUTilDao 类
  10. event.stopPropagation(),event.preventDefault()和return false的区别