int 和integer的比较

本文探讨了Java中int作为基本数据类型与Integer作为引用数据类型的差异,包括默认值、存储方式以及比较时的行为。总结了四点关键结论,涉及对象实例化、数值范围、自动拆箱以及相同数值的基本类型比较。

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

 

 

区别:

  • int是基本数据类型,Integer是引用数据类型;
  • int默认值是0,Integer默认值是null;
  • Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值 ;
  • int类型直接存储数值,Integer需要实例化对象,指向对象的地址。
package HelloWorld;

public class Intandinteger {
	 @SuppressWarnings("removal")
	public static void main(String[] args) {
	        //-128 ~ +127 之间
	        Integer a = 5;
	        int b = 5;
	        @SuppressWarnings("removal")
			Integer c = new Integer(5);
	        Integer d = 5;

	        System.out.println(a.equals(b)); //true
	        System.out.println(a == b);  
	        System.out.println(a.equals(c));
	        System.out.println(a == c);
	        System.out.println(a == d);

	        //-128 ~ +127 之外
	        a = 128;
	        b = 128;
	        c = new Integer(128);
	        d = 128;

	        System.out.println(a.equals(b));
	        System.out.println(a == b);
	        System.out.println(a.equals(c));
	        System.out.println(a == c);
	        System.out.println(a == d);
	    }

}

结果为:

true
true
true
false
true
true
true
true
false
false

综上,我们可以得出几个结论:
1、都是封装类,都是new出来的,肯定不相等。因为对象的内存地址不一样。
2、都是封装类,都不是new出来的,如果值在-128~127之间,那就相等,否则不相等。
3、如果是封装类和基本类型进行比较,只要数值相等那就相等,否则就不相等。因为封装类和基本数据类型进行比较的时候会有一个自动拆箱操作。
4、都是基本数据类型,如果数值相等,那就相等;否则不相等。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值