java基础-基本类型与包装类

文章讨论了Java中int和Integer类型的比较。当int与Integer进行==比较时,Integer会拆箱成int。Integer对象在-128到127之间会进行缓存,导致相同数值的对象可能相等,而超出此范围的对象则是不同的实例。对于浮点数,没有类似的缓存机制,因此相同值的Double对象被视为不同。
摘要由CSDN通过智能技术生成

int int1=12;

int int2=12;

 

Integer integer1=new Integer(12);

Integer integer2=new Integer(12);

Integer integer3=new Integer(127);

 

Integer a1=127;

Integer a2=127;

 

Integer a=128;

Integer b=128;

 

 

int1==int2//true

int1==integer1//true 当integer与int进行==比较时,integer就会拆箱成一个int类型(这里的integer不管是New创建,还是直接赋值)

integer1==integer2//false

integer3==a1//false integer3是一个对象类型,a1是一个常量存放内存的位置不一样

a1==a2//true -128到127之间的数,会进行缓存,所以a1、a2相等

a==b//false 当超过这个范围就是new Integer()来new一个对象了,所以a、b不等

注:a.equas(b) //true 这里equas实际调用的是Integer的intValue(),比较的是基本类型的值

 

Double d1=100.0;

Double d2=100.0;

Double d3=200.0;

Double d4=200.0;

 

d1==d2//false

d3==d4//false 在某个范围内的整型数值的个数是有限的,而浮点数却不是

 

注:

Integer直接赋值的方式实际调用了Integer的valueOf方法(反编译可看到)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值