JAVA——自动拆箱和装箱

10 篇文章 0 订阅

什么是拆箱和装箱

将一个基本数据类型的值赋给其所对应的包装类型称为装箱;将一个基本数据类型包装类类型的值赋给其所对应的基本数据类型称为拆箱,由于装箱和拆箱的过程是自动进行的非人为转换,所以称作为自动装箱和拆箱.。

Integer i = 100;//自动装箱
  System.out.println(i);
  int j = i;//自动拆箱
  System.out.println(j);

JAVA内部进行的缓存

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

Integer i = 100;
  Integer j = 100;
  System.out.println(i==j);

在这里插入图片描述
Java中的有两种作用:如果是基本数据类型则用于判断其值是否相等;如果为引用类型则用于判断两者的地址是否相同。此处i和j均为引用类型,但因为其值都是100,所以i和j引用的是同一块地址,所以使用判断时其结果为true。

缓存的限度

1、byte、short、int和long所对应包装类的数据缓存范围为 -128~127(包括-128和127。

  Integer i = 128;
  Integer j = 128;
  System.out.println(i==j);

在这里插入图片描述
2、float和double所对应的包装类没有数据缓存范围;
3、char所对应包装类的数据缓存范围为 0~127(包括0和127);

  Character i = 5;
  Character j = 5;
  System.out.println(i==j);

在这里插入图片描述

Character i = 128;
  Character j = 128;
  System.out.println(i==j);

在这里插入图片描述

4、boolean所对应包装类的数据缓存为true和false

自动拆箱

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

  int a = 128;
  Integer aa = 128;
  Integer aaa = new Integer(128);
  System.out.println(a==aa);//aa自动转换成基本数据类型啊int
  System.out.println(a==aaa);//aaa自动转换成基本数据类型啊int
  System.out.println(aa==aaa);

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值