Integer inb = 2;//自动装箱
Integer inc = 2;
System.out.println(inb == inc );//输出true
Integer biga = 128;
Integer bigb = 128;
System.out.println(biga == bigb);//输出false

上面的代码来自李刚老师的书,应该注意其中的细节.

上面的输出与Integer的设计有关。

1.系统把一个-128~127之间的整数自动装箱成Integer实例,放入一个cache数组缓存起来。

2.如果以后把一个-128~127之间的整数自动装箱成一个Integer实例,实际上是直接指向对应的数组cache中的元素。

3.如果两个Integer实例的为同一个整数,实际上,它们引用的是cache数组中的同一个元素,所以它们相等,故(inb == inc)输出true。

4.如果把一个不在-128~127的整数装箱成Integer实例,此时系统总是会创建新的Integer实例,即两个Integer引用,我们知道‘==’作为实例对象的比较运算符时,其实比的是两个实例对象是否指向同一个对象,此时这两个Integer实例分别指向各自的实例对象,所以(biga == bigb)输出false。

以上的是我的理解!欢迎同学们指教、拍砖(请慢拍)!

转载于:https://blog.51cto.com/carryon1981/1272889

java中Integer装箱的注意相关推荐

  1. Java中的装箱和拆箱剖析

    Java中的装箱和拆箱剖析 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题.本文先讲述装箱和拆箱最基本的东西,再来看一下乐橙谷公会面试笔试中经常遇到的 ...

  2. Java 中 Integer 源码学习之缓存池了解

    Java 中 Integer 源码学习之缓存池了解 面试题 new Integer(123) 与 Integer.valueOf(123) 的区别? new Integer(123) 每次都会新建一个 ...

  3. java中的拆箱和装箱是指什么_一文带你理解Java中自动装箱和拆箱

    Java中自动装箱和拆箱 装箱(Boxing),也称为包装(Wrapper),是在对象中放置原语类型(primitive type)的过程,以便原语(primitive)可以作为引用对象使用. 这里的 ...

  4. JAVA中Integer的==和equals

    JAVA中Integer的==和equals注意 "equals"比较 equals(Object obj)方法,在equals(Object obj)方法中,会先判断参数中的对象 ...

  5. 一文带你理解Java中自动装箱和拆箱

    Java中自动装箱和拆箱 装箱(Boxing),也称为包装(Wrapper),是在对象中放置原语类型(primitive type)的过程,以便原语(primitive)可以作为引用对象使用. 这里的 ...

  6. Java中的装箱和拆箱—这一篇全了解

    Java中的拆箱装箱-这一篇全了解 一.什么是装箱?什么是拆箱? Java为每种基本数据类型都提供了对应的包装器类型,让基本类型具备对象的特征,实现更多的功能..在Java SE5之前,如果要生成一个 ...

  7. java 中 Integer 比较 问题

    对于 java 中 Integer  类型 比较 ,经常在面试中被提到 ,有时 还真的 让人 头疼.下面我来分析下.integer   比较问题. 解决 Integer 值比较问题.我想从以下几点说起 ...

  8. java中Integer的最大最小值

    java中Integer是有最大值和最小值的 最大值为Integer.MAX_VALUE = 2147483647 最小值为Integer.MIN_VALUE = -2147483648 注意:两个值 ...

  9. java中integer的范围_java中integer取值范围是什么

    java中integer取值范围是什么 发布时间:2020-08-27 10:01:14 来源:亿速云 阅读:69 作者:小新 这篇文章给大家分享的是有关java中integer取值范围是什么的内容. ...

最新文章

  1. unittest 框架学习
  2. 从CES Asia 2017看智能家居的发展趋势
  3. 《数据科学:R语言实现》——2.7 爬取网络数据
  4. Erlang 的安装配置,编译和运行
  5. agc015F - Kenus the Ancient Greek(结论题)
  6. chromedriver : Saving to 安装卡住 解决
  7. linux7 samba,Centos 7使用Samba实现文件共享
  8. 第二百九十八节,python操作redis缓存-Set集合类型,可以理解为不能有重复元素的列表...
  9. php如何删除zip文件内容,删除php中的zip文件夹
  10. 六级考研单词之路-十五
  11. 脑科学磁共振成像(MRI)初学者必看——功能脑网络、小世界网络、FDR校正、脑电信号频率变换、模板、假设检验、广义线性模型、独立成分分析、影像组学、任务态和静息态方法汇总
  12. 微信小程序开发手账从入门到部署【持续更新】
  13. 小白java环境变量配置
  14. Android模拟器检测体系梳理
  15. (转帖)如何成长为真正的CCIE,转自WOlf
  16. CLIPS 的简单认识
  17. 【智能制造】智能生产:智能制造的主线
  18. js过滤出对象中想要的数据
  19. 使用xrc的一点心得
  20. 最新mysql8.0.22忘记密码解决大法

热门文章

  1. python购物车程序详解用字典_Python_购物车程序[列表嵌套字典]
  2. python解复杂方程_Python数据处理篇之Sympy系列(五)---解方程
  3. Java项目:(前端vue后台java微服务)在线考试系统(java+vue+springboot+mysql+maven)
  4. layui跳转html如何带参数,Layui跳转页面代码(可携带复杂参数)
  5. linux进程下的线程数,Linux下查看进程线程数的方法
  6. legend位置 pyecharts_可视化入门 | pyecharts全局配置项详解
  7. ie8加载js太慢_js ie8 慢
  8. Angular应用提高打包速度
  9. Android 数据存储-内外部存储测试
  10. 终极方案!解决正确设置LaunchImage后仍然不显示的问题