int 与 Integer的比较,基本类型与引用类型

本文探讨了Java中的自动装箱和拆箱机制,以及Integer对象的缓存特性。当Integer值在-128到127之间时,Integer对象会使用缓存,导致相等;超出此范围则每次创建新对象,不相等。同时,通过equals方法比较Integer对象时,即使数值相等,不同对象引用也会返回false。
摘要由CSDN通过智能技术生成
public class Test01_java自动装箱和拆箱 {
    public static void main(String[] args) {
        //Ingeter是int的包装类,int的初值为0,Ingeter的初值为null
       Integer integer=5;
       int i=5;
        System.out.println(integer==i); // true这里应该是integer进行了自动拆箱
        System.out.println(integer.equals(i)); // true    基本类型是没办法调用equals方法的,这里应该是i进行了自动装箱变成了Integer
        Integer i5 = 127;//java在编译的时候,被翻译成-> Integer i5 = Integer.valueOf(127);    -128--127之间的数
        // 这个方法会对调用的数进行缓存,再次调用一个值相同的数,就不会再创建新的对象,所以两者相等
        Integer i6 = 127;
        System.out.println(i5==i6);//true;
  //==============================================================================
        //当赋的值超过了-128-127 这个范围后,就会直接创建一个Integer对象,所以i9和i10不相等
        Integer i9=200;
        Integer i10=200;
        System.out.println(i9);
        System.out.println(i10);
        System.out.println(i9==i10); //false

        //===================================================================================
        Integer i7=new Integer(127);
        Integer i8=new Integer(127);
        System.out.println(i7==i8);//false;




        //同理如下
        char a='1';
        Character b='1';
        System.out.println(a==b);  //true
        System.out.println(b.equals(a));//true
}
}
 1.Interge i4=127,Integer i5 = 127,这两个比较是相等的,但是Interge i5=new Interge(127),与i4,i3都是不等的,一个引用指向堆,而一个指向专门存放他的内存(常量池),他们的内存地址不一样,所以为false
 2.两个都是非new出来的Integer,如果数在-128到127之间,则是true,否则为false.  java在编译Integer i2 = 128的时候,被翻译成-> Integer i2 = Integer.valueOf(128),而valueOf()函数会对-128到127之间的数进行缓存,超出范围的会直接重新new 一个对象
 3.两个都是new出来的,都为false
 4.int和integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值