Integer使用==比较的问题

  • new一个对象

    public Integer(int value) {
    this.value = value;
    }
  • 自动装箱

    public static Integer valueOf(int i) {
    if (i >= IntegerCache.low && i <= IntegerCache.high)
    return IntegerCache.cache[i + (-IntegerCache.low)];
    return new Integer(i);
    }
  • 自动拆箱

    public int intValue() {
    return value;
    }

    总结:

    • int 和 int 比较,比较的是字面量的值,使用==始终是true
    • int 和 integer 比较,由于 integer 会发生自动拆箱,也是true
    • integer 和 integer 比较:
      • 若两个都是new出来的对象,则始终是false
      • 若一个是new,一个是非new(包括字面量 || Integer.valueOf( )等),那么一个是自动装箱的对象,一个是new出来的对象,始终flase
      • 两个都不是new出来的,都会发生自动装箱,就需要看值的范围,在-128-127的范围内,会获取IntegerCache里的对象,这样就是true,范围外的还是false

最新文章

  1. MSYS2——Windows平台下模拟linux环境的搭建
  2. JAVA开发相关
  3. volatile关键字和mutable关键字
  4. 简单一键CENTOS6 安装PPTP VPN方法记录
  5. 编码之JSP乱码涉及问题
  6. poj1328 贪心
  7. Deep Learning 7_深度学习UFLDL教程:Self-Taught Learning_Exercise(斯坦福大学深度学习教程)
  8. 根据窗体自动调整控件及文本框记住上次填写内容Demo
  9. Data Flow -&gt;&gt; Union All
  10. Orchard源码分析(1):插件式的支持——模块和主题
  11. 数据加密算法---base64
  12. Swift - 使用EventKit获取系统日历事件,添加事件
  13. 编程经验点滴----巧妙解决 Oracle NClob 读写问题
  14. Java 之 Web前端(二)
  15. ORM字段操作
  16. 论文笔记:Improving Deep Visual Representation for Person Re-identification by Global and Local Image-language Association
  17. WinDbg命令三部曲
  18. API测试利器postMan 使用教程
  19. Ansible Playbook 使用循环语句
  20. 告知你不为人知的UDP-疑难杂症和使用

热门文章

  1. 基础css样式
  2. 李宏毅机器学习笔记:从0到写AI
  3. uniapp微信小程序 下拉刷新(上拉请求下一页数据)
  4. Python免杀过360
  5. JavaScript:操作符:操作符的特点
  6. JavaScript:操作符:赋值运算符和空赋值(??=)
  7. Linux基础第一章 概述
  8. 基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求
  9. Go语言与其他高级语言的区别
  10. latex文档的中文字体设置