int 和 Integer的区别

int 和 Integer的区别int 和 Integer 的区别分析 intIntegerin 与 Integer 的区别相同值下的 int 和 Integer 的比较结果分析 intint 是 java 的基本数据类型 IntegerInteg 继承了 Object 类 是对象类型 是 int 的包装类 int 与 Integer 的区别值的存储 int 存储在栈中 Integer 对象的引用存储在栈空间中 对象

分析

int

int 是java的基本数据类型。 

Integer

Integer 继承了Object类,是对象类型,是 int 的包装类。 

int 与 Integer 的区别

  1. 值的存储
    int 存储在栈中
    Integer 对象的引用存储在栈空间中,对象的数据存储在堆空间中。




  2. 初始化
    int 初始化值为0。
    Integer 初始化值为null。




  3. 传参
    int 是值传递,栈中的数据不可变。
    Integer 对象是引用传递,引用不可变,但是引用指向的堆空间地址中的值是可以改变的。




  4. 泛型支持
    泛型不支持int,但是支持Integer。

  5. 运算
    int 可以直接做运算,是类的特性。
    Integer 的对象可以调用该类的方法,但是在拆箱之前不能进行运算,需要转化为基本类型int。




相同值下的 int 和 Integer 的比较结果

  1. 两个通过new生成的变量,结果为false。
  2. int 和 Integer 的值比较,若两者的值相等,则为true。
    (注意:在比较时,Integer会自动拆箱为int类型,然后再做比较。)

  3. new 生成的Integer变量 和 非new 生成的Integer变量比较,,结果为false。
    (注意:new 生成的Integer变量的值在堆空间中,非new 生成的Integer变量的值在在常量池中。)
    (注意:非new生成的Integer变量,会先判断常量池中是否有该对象,若有则共享,若无则在常量池中放入该对象;也叫享元模式,后面再说。)




  4. 两个非new 生成的Integer对象比较,则结果为true。
    (注意:此处需要一个前提:值的范围在 -128 ~ 127 之间。
    涉及到java对 int 与 Integer 的自动装箱和拆箱的一种模式:享元模式—flyweight,为了加强对简单数字的重复利用。
    在赋值时,其实是执行了Integer的valueOf()方法。
    当值在 -128 ~ 127之间时,java会进行自动装箱,然后会对值进行缓存,如果下次再有相同的值,会直接在缓存中取出使用。缓存是通过Integer的内部类IntegerCache来完成的。
    当值超出此范围,会在堆中new出一个对象来存储。
    PS:自动装箱与拆箱是在JDK1.5中出现的。














  5. 内部类IntegerCache
    通过此类可以缓存简单数字。
    缓存的数大小可以由 -XX:AutoBoxCacheMax = 控制。
    jvm初始化时,java.lang.Integer.IntegerCache.high属性可以设置并保存在私有系统属性中。
    规定了low属性的值:-128








版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220264.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午8:52
下一篇 2026年3月17日 下午8:53


相关推荐

  • python 保留两位小数

    python 保留两位小数>>>a=1>>>b=3>>>print(a/b)0>>>#方法一:…print(round(a

    2022年7月5日
    22
  • linux下载文件到本地苹果,从Linux服务器下载文件到本地命令

    linux下载文件到本地苹果,从Linux服务器下载文件到本地命令从Linux服务器下载文件夹到本地一、使用scp命令linuxscp/home/work/source.txtwork@192.168.0.10:/home/work/#把本地的source.txt文件拷贝到192.168.0.10机器上的/home/work目录下shellscpwork@192.168.0.10:/home/work/source.txt/home/work/#把1…

    2022年8月24日
    12
  • 关于sql和MySQL的语句执行顺序(必看)「建议收藏」

    关于sql和MySQL的语句执行顺序(必看)「建议收藏」今天遇到一个问题就是mysql中insertinto和update以及delete语句中能使用as别名吗?目前还在查看,但是在查阅资料时发现了一些有益的知识,给大家分享一下,就是关于sql以及MySQL语句执行顺序:sql和mysql执行顺序,发现内部机制是一样的。最大区别是在别名的引用上。一、sql执行顺序(1)from(3)join(2)on(4)where…

    2022年6月21日
    22
  • 如何防止木马病毒盗窃QQ密码?[通俗易懂]

    如何防止木马病毒盗窃QQ密码?[通俗易懂]相信很多网友都有QQ号码被盗的机构能力,那么你的QQ密码是如何丢失的呢?一般来说盗取QQ密码有两种途径:一种是本地暴力激活成功教程QQ密码,另一种是利用键盘记录器这类木马程序远程盗取密码。对于暴力激活成功教程,前提是本地电脑上留有用户登录过的QQ文件(这也是在网吧和公共机房用QQ容易丢失密码的原因),然后利用激活成功教程软件对密码进行穷举法猜解。所谓穷举法,就是对键盘上所有可能输入的数字或字母进行逐个排列组合与试验,最后

    2022年7月20日
    16
  • MODIS数据说明

    MODIS数据说明MODIS目前主要存在于两颗卫星上:TERRA和AQUA。TERRA卫星每日地方时上午10:30时过境,因此也把它称作地球观测第一颗上午星(EOS-AM1)。AQUA每日地方时下午过境,因此称作地球观测第一颗下午星(EOS-PM1)。两颗星相互配合,每1-2天可重复观测整个地球表面,得到36个波段(表1)的观测得到,这些数据广泛用于全球陆地、海洋和低层大气内的动态变化过程研究。MODIS获

    2022年5月7日
    91
  • 数据库设计中关系规范化理论总结怎么写_数据库规范化理论是什么

    数据库设计中关系规范化理论总结怎么写_数据库规范化理论是什么数据库是一门对数据进行有效管理的技术,它研究信息资源如何被安全地储存和如何被高效地利用,它是现代计算机科学的一个重要分支。其中关系数据库是目前被应用最广泛的数据库类型,它看起来类似于一张二维表,通过应用数学的方法来处理数据库中的数据。在关系数据库的设计过程中,最重要的莫过于对数据库的逻辑设计,即针对一个具体的问题,我们应该如何去构造一个适合它的数据库模式。经过科学家的讨论研究,最终形成我们今天所看到的关系数据库的规范化理论。本文通过例举具体事例来探讨关系规范化理论在数据库逻辑设计中的形成和方法。

    2022年10月16日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号