关于java装箱和拆箱

本文介绍了Java装箱和拆箱的转换方式,如Integer a = 100 会转换为 Integer a = Integer.valueof(100) 。还提到Java基本类型包装类大多实现常量池技术,Byte、Short等有对应范围缓存数据,Float、Double未实现。同时说明了“==”运算符在不同操作数情况下的比较规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于java装箱和拆箱

转载http://www.cnblogs.com/dolphin0520/p/3780005.html

 

Integer a = 100 ==>   Integer a = Integer.valueof(100)

int n = a            ==> n = Integer.intvalue(a)  变为数值

Java 基本类型的包装类的大部分都实现了常量池技术,即 Byte,Short,Integer,Long,Character,Boolean;前面 4 种包装类默认创建了数值[-128,127] 的相应类型的缓存数据,Character创建了数值在[0,127]范围的缓存数据,Boolean 直接返回True Or False。如果超出对应范围仍然会去创建新的对象。

 Integer i1 = 100;  Integer i2 = 100;  System.out.println(i1==i2);  true

Integer i3 = 100;  Integer i4 = 100;  System.out.println(i3==i4);  false  因为超出常量池,创建new Integer(i)

Float,Double 并没有实现常量池技术  他们的比较都是false

当 "=="运算符的两个操作数都是 包装器类型的引用,则是比较指向的是否是同一个对象,而如果其中有一个操作数是表达式(即包含算术运算)则比较的是数值(即会触发自动拆箱的过程)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值