Java中Integer和int有什么区别呢?

陈欣 Java经验 发布时间:2023-08-16 15:25:03 阅读数:13283 1
下文笔者讲述Integer和int之间的区别说明,如下所示

int和Integer区别

 
两者的区别主要体现在以下几个方面:
1、数据类型不同:
     int 是基础数据类型,而 Integer 是包装数据类型
2、默认值不同:
     int 的默认值是 0,而 Integer 的默认值是 null
3、内存中存储的方式不同:
     int 在内存中直接存储的是数据值
           而Integer实际存储的是对象引用
           当new 一个Integer时实际上是生成一个指针指向此对象
4、实例化方式不同:
     Integer必须实例化才可以使用
           而int不需要
5、变量的比较方式不同:
      int可以使用 == 来对比两个变量是否相等
             而Integer一定要使用 equals 来比较两个变量是否相等

Integer、new Integer()和int对比

1、两个new Integer()变量比较,永远是false
   因为new生成的是两个对象,其内存地址不同

2、Integer变量 和 new Integer() 变量比较 ,永远为 false
       因为 Integer变量 指向的是java常量池中的对象
           而 new Integer() 的变量指向堆中新建的对象
          两者在内存中的地址不同。

3、两个Integer 变量比较
     如果两个变量的值在区间-128到127 之间,则比较结果为true
     如果两个变量的值不在此区间,则比较结果为 false

注意事项:
   Integer i = 100 在编译时
       会翻译成为 Integer i = Integer.valueOf(100)
       而 java 对 Integer类型的 valueOf 的定义如下

java对于-128到127之间的数,会进行缓存。
所以 Integer i = 127 时,会将127进行缓存
    下次再写Integer j = 127时,就会直接从缓存中取,就不会new

4、int变量与 Integer、new Integer()比较时
     只要两个的值是相等的,则为true.
因为包装类Integer 和 基本数据类型int 比较时
    java会自动拆包装为int
    然后进行比较,实际上就变为两个int变量的比较
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202308/16921707657237.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者