int与integer的比较大小

int与integer的比较大小

Integer是int的封装类,int与Integer比较时,Integer会自动拆箱,无论怎么比,int与Integer都相等,

Integer比较时,查看java源代码可知道,在-128与127之间,Integer会自动存在内存中,再有时,直接从内存中去取,不在这个范围则会new新对象,所以Integer与new Integer永远都不相等。

范例

int a=127;int b=127;Integer c = 127;Integer d = new Integer(127); Integer e=127;

a==b true;     a==c;true        c==d;false;       a==d;true;        c==e true;

int a=128;int b=128;Integer c=128;Integer d=128;Integer e = new Integer(128);

a==b true;    a==c true;     a==e true;    c==d false;    c==e  false;

java的自动装箱与自动拆箱

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

在-128到127范围,会生成同一个对象,在范围之外,会执行new Integer(99);

装箱的过程会创建对应的对象,这个会消耗内存,所以装箱的过程会增加内存的消耗,影响性能

拆箱过程执行了int totlprim = total.intValue();

原文地址https://blog.csdn.net/yuanjianqiang_0925/article/details/84060825

猜你喜欢

转载自blog.csdn.net/Jay112011/article/details/111597956