int 和 Integer

本文详细介绍了Integer与int在Java中的主要区别:Integer是int的封装类,有默认值null,需要实例化;int是基本类型,默认值为0,无需实例化。Integer是对象,存储在堆中,不可变;int直接存储数值,性能更高。因此,当比较Integer对象时,可能因不同实例导致比较结果为false。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Integer 和 int 的区别

1、Integer 是 int 提供的封装类,而 int 是 Java 的基本数据类型;


2、Integer 默认值是 null,而 int 默认值是 0;


3、声明为 Integer 的变量需要实例化,而声明为 int 的变量不需要实例化;


4、Integer 是对象,用一个引用指向这个对象,而 int 是基本类型,直接存储数值。

  • Integer 实际是对象的引用,当 new 一个 Integer 时,实际上是生成一个指针指向此对象;而 int 则是直接存储数据值。
  • 那么 m==n 为什么会输出 false 呢? 是因为
  • int 是基本类型,数值范围介于 - 2,147,483,648 [-231] 到 + 2,147,483,647 [2 31-1] 之间,在此区间内的数值计算使用 int 有很高的性能。int 类型占 32 位,且是可变的 (mutable),除非用 final 修饰,否则可以随时改变它的值。
  • Integer 是对象类型,包含 int 属性。相比 int,Integer 较为庞大,就好比用一个快递箱把 int 包装起来。Integer 类型是不可变的 (immutable),如果想影响一个 Integer 变量的值,只能新建一个 Integer 对象,将原来对象丢弃。
  • 所以 m 和 n 指向的地址不同,输出为 false。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值