java之装箱与拆箱

基本数据类型:

byte【1Byte=8bit】、short【2】、int【4】、long【8】、
float【4】、double【8】、
boolean【1bit】、
char【2】、
---------------------------》》》》》》》》》》》》装箱》》》》》》》》》》》》》------------------------------------------------------
---------------------------《《《《《《《《《《《《拆箱《《《《《《《《《《《《《------------------------------------------------------

包装类型:

Byte、Short、Integer、Long、
Float、Double、
Boolean、
Character、


1、Integer、Short、Long[-128,127]

1)装箱

a)new Integer():  //存放在堆中,new一个对象,不存在缓存
b)Integer.valueOf():
c)Integer i = 1;触发b)自动装箱

在这里插入图片描述
以上说明i3、i33、i5指向同一个对象,why?
valueOf源码:
在这里插入图片描述
IntegerCache类:
在这里插入图片描述
可知:

  • 当整数范围在[-128,127]时【最高不一定是127,可在配置文件中进行配置】,valueOf方法使用缓存【IntegerCache在初始化时进行了缓存】,直接用Integer.cache数组取值,否则就new一个对象【在堆内存中创建】

2)拆箱

Integer t = 100;
a)int t1 = t.intValue();
b)int t2 = i;//自动拆箱

在这里插入图片描述
int是基本数据类型,不是面对对象的,只有纯数据操作,这也是为什么会有包装类出现。


另:equals和==:

  • ==:操作数都是包装器类型数据的引用时,比较是否指向同一个对象;但如果其中有一个操作数是表达式,则比较的是数值【触发自动拆箱】
  • equals:比较数值【自动拆箱】,前提是类型一致【不会进行类型转换】
    在这里插入图片描述
    在这里插入图片描述

  • Short一样
    在这里插入图片描述
    在这里插入图片描述
  • Long一样
    在这里插入图片描述
    在这里插入图片描述

2、Double与Float[无缓存]

在这里插入图片描述
why?
在这里插入图片描述
无缓存

  • Float一样
    在这里插入图片描述

3、Byte[-128,127]全部

在这里插入图片描述
在这里插入图片描述

4、Boolean

在这里插入图片描述
在这里插入图片描述

5、Character[0,127]

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 另:java使用unicode对字符进行编码【表示范围为’\u0000’(0)~’\uffff’(65,535)】
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值