问题:

最近使用Integer类型的数据做判断时,遇到了一个神奇的问题。

如:

Integer a=223;

Integer b=223;

这样使用==做判断,得到的结果是 false

原因:

后来查找了一下,发现Integer类型的数据,范围在-128-127时是放在常量池的,意思也就是如果在范围内,会直接从常量池中取值,这时使用==判断是没问题的,但是如果不在常量池范围内使用Integer是就会重新new Integer(),所以这个时候使用==得到的结果就是false了。

debug看一下各个变量的内存地址:

控制台输出结果:

这里顺便说一下==和equals的区别

说简单点就是: ==比较的是内存地址,而equals比较的是值是否相等。

上面的测试案例把==换成equals:

控制台输出:

最新文章

  1. 打造自定Select样式
  2. 查看SQLserver编码格式的SQL语句
  3. 区分IE版本的三个方法
  4. 关于vue.js中class与style绑定的学习
  5. Apache2.4和Apache2.2访问控制配置语法对比
  6. Java获取各种常用时间方法大全
  7. android 经典下雨效果
  8. Jersey(1.19.1) - Root Resource Classes
  9. Esper系列(十)NamedWindow语法delete、Select+Delete、Update
  10. Android自定义属性时TypedArray的使用方法
  11. HDU 献给杭电五十周年校庆的礼物 1290 递推
  12. iOS网络之数据请求GET和POST
  13. 大学二三事——那些事(1)
  14. 全栈开发工程师微信小程序-中(下)
  15. inode满引发不能写文件的问题
  16. MyEclipse中点击部署项目无响应(Deploy MyEclipse J2EE Project to Server)
  17. DMZ 区域
  18. 06-03 Java 面向对象思想概述、开发设计特征,类和对象的定义使用,对象内存图
  19. 修改VIM恶心的注释自动格式化
  20. swusec的构想,顺便送开学福利——校园网一号多登录演示

热门文章

  1. python文件夹中文件读取踩坑
  2. IO博客专栏
  3. JSP&Servlet学习笔记----第3章
  4. Lua使用luasocket http请求例子
  5. python 中的反斜杠匹配的问题
  6. 《剑指Offer》第二章(一)题 9 -12
  7. spring cloud微服务快速教程之(七) Spring Cloud Alibaba--nacos(一)、服务注册发现
  8. Asp.Net Api+Swagger控制器注释
  9. ubuntu下怎么配置/查看串口-minicom工具
  10. 单页应用(SPA,Single-page-App)和多页应用(MPA,Multi-page App)的区别