包装类的自动拆箱和自动装箱

本文详细介绍了Java中基本类型与包装类之间的装箱和拆箱操作,包括自动装箱、手动装箱、自动拆箱和手动拆箱的示例。同时,重点解析了包装类的常量池规则,特别是Integer对象在-128到127之间的特殊性,以及超出该范围后如何创建新的对象。此外,文章还提到了浮点型包装类Double没有常量池的情况。
摘要由CSDN通过智能技术生成

包装类

装箱:将基本类型转换成包装类

拆箱:将包装类转换成基本数据类型

基本类型和包装了类装箱和拆箱案例

//==================装箱============
//自动装箱
int t1=2;
Integer t2=t1;
//手动装箱
Integer t3 = new Integer(t1);
System.out.println("t2="+t2);
System.out.println("t3="+t3);
//==================拆箱============
//自动拆箱
int t4=t2;
//手动拆箱
int t5=t3.intValue();
System.out.println("t4="+t4);
System.out.println("t5="+t5);

//手动拆箱成double
double v = t2.doubleValue();
System.out.println("v="+v);

包装类需要注意的:包装类常量池规则

Integer one=100;
Integer two =new Integer(100);
//他们是不同的对象
System.out.println("one==two的结果"+(one==two));  //false

// Integer three=Integer.valueOf(100);
Integer three=100;
//同一个对象常量池比较,-128~127所以为true
System.out.println("one==three的结果"+(one==three)); //true

//同一个对象常量池比较,-128~127所以为true
Integer four = Integer.valueOf(100);
System.out.println("three==four的结果"+(four==three)); //true

//因为他会进行先自动装箱:比较时自动拆箱(转换成int的进行比较)
Integer five=200;
System.out.println("five==200的结果"+(five==200)); //true

//因为根据对象常量池的数字限制-128~127之间,超过的会创建新对象(new Integer)
Integer six=200;
System.out.println("five==six的结果"+(five==six));//false


//浮点型的包装类没有常量池:double/float
Double a=Double.valueOf(100);
Double b=Double.valueOf(100);
System.out.println("a==b的结果:"+(a==b));//false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值