Integer 与 int 区别

1.Integer 类和 int 的区别

int 取值范围 -231 ~231 -1
Integer 是 int 包装类类,默认值为null,int是基本数据类型,默认值为0 ,占4个字节;
Integer 是Integer对象的引用,所以两个通过new生成的Integer变量永远是不相等的(因为new生成的是两个对象,其内存地址不同)
Integer 需要实例化使用

2.Integer 的自动拆箱和装箱

装箱就是自动将基本数据类型转换为包装器类型
拆箱就是自动将包装器类型装换为基本数据类型


Integer i = 10;
i=i+1;

过程
Integer i = Integer.valueOf(10);
Integer.valueOf(i.intValue() + 1)=11 //自动拆箱,再自动装箱
i=new Integer(11)

	// Integer ii = Integer.valueOf(10); //自动装箱
	// ii = Integer.valueOf(ii.intValue() + 1); //自动拆箱,再自动装箱
parseInt(String)方法将字符串转换整数
3.Integer 与int 是否相等

第一种情况
Integer i = 10;
Integer j = 10;
Integer m = new Integer(128);
Integer n = new Integer(128);
Integer a = 128;
Integer b = 128;

    System.out.println(i == j);
    System.out.println(m == n);
    System.out.println(a == b);

1.true,false,false
说明Integer可以从缓存中得到数据,valueof()底层,其中low与high取值范围是-128到127,所以相等
在这里插入图片描述
注:Integer 实例化不相等,因为他们的存储地址不同

第二种情况

	  Integer i = 128;
   	 Integer e = 127;

    Integer n = new Integer(127);
    Integer c = new Integer(128);
    int a = 127;
    int b = 128;

   System.out.println(a == e);
   System.out.println(i == b);
   System.out.println(c == b);
   System.out.println(n == a);

结果
true
true
true
true
Int与Integer的比较不受取值范围的影响,自动拆箱与装箱

Integer.compare和compareTo
两个值作比较

compareTo底层是吊的compare
对象大于目标参数,返回1
对象小于目标参数,返回-1
对象等于目标参数,返回0

if( Integer.compare(30,20) == 1){
            System.out.println(1);
        }else{
            System.out.println(0);
        }

结果:1

		 Integer a = 122;
         Integer b = 122;
         if(a.compareTo(b) == 0){
             System.out.println(1);
         }else {
             System.out.println(0);
         }

结果:1,两值相等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值