java中int和Integer的==比较和拆箱装箱

来源:互联网 发布:macbook air破解软件 编辑:程序博客网 时间:2024/06/12 01:33

Integer与Integer间的比较,从jdk1.5开始,有“自动装箱”机制  比较地址

自动拆箱 :对象包装类和基本数据类型比较  对象包装类拆箱成基本数据类型,比较的是里面的值,不是地址

,在byte-128到127之间,已创建的值,在创建相同值的时候就不会重新创建,而是引用原来那个。

1.Integer和Integer比较

Integer i=128;Integer i2=128;System.out.println(i==i2);//false自动装箱过程,超过byte范围则创建新对像 不超过范围 是true

Integer i=new Integer(5);Integer i2=new Integer(5);System.out.println(i==i2);//false两个new 两个不同对象 比较地址

Integer i=new Integer (128);Integer i2=128;System.out.println(i==i2);//false 不经历拆装箱过程 i的引用指向堆(堆中存放对象)i2指向常量池

2. Integer和int比较

Integer i=new Integer(5);int i2=5;System.out.println(i==i2);//true i自动拆箱为i=5, 这是 比较的就是数值


0 0
原创粉丝点击