拆箱和装箱

将一个基本数据类型的值赋给其所对应的包装类型称为装箱;将一个基本数据类型包装类类型的值赋给其所对应的基本数据类型称为拆箱,由于装箱和拆箱的过程是自动进行的非人为转换,所以称作为自动装箱和拆箱
Integer a = 100;//自动装箱
System.out.println(a);//输出100
int j = a;//自动拆箱
System.out.println(i);//输出100

自动拆箱和装箱的过程由编译器自动完成:通过包装类的valueOf方法将基本数据类型包装成引用类型;通过包装类对象xxxValue方法将引用类型变为对应的基本类型

 

Java部分经常使用的数据采用缓存技术,即第一次使用该数据则创建该数据对象并对其进行缓存,当再次使用等值对象时直接从缓存中获取,从而提高了程序执行性能。

基本数据类型和基本数据类型封装型进行“==”运算符的比较时,基本数据类型封装型会先自动拆箱变为基本数据类型后再进行比较。

Java 中只是对 部分 基本数据类型对应包装类的 部分 数据进行了缓存:
1. byte short int long 所对应包装类的数据缓存范围为 -128~127 (包括 -128 127 );
Integer a = -128;
Integer b =-128;
System.out.println(a==b);//输出true

Integer c = 128;
Integer d = 128;
System.out.println(c==d);//输出false


 

 

2. float double 所对应的包装类没有数据缓存范围;
Double a = 1.0;
Double b = 1.0;
System.out.println(a==b);//输出false

 

 

3. char 所对应包装类的数据缓存范围为 0~127 (包括 0 127 );
Character a = 127;
Character b = 127;
System.out.println(a==b);//输出true

 

 

4. boolean 所对应包装类的数据缓存为 true false
Boolean a = true;
Boolean b = true;
System.out.println(a==b);//输出true
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值