Java包装类数据缓存

将一个基本数据类型的值赋给其所对应的包装类型称之为自动装箱
将一个基本数据类型包装类类型的值赋给其所对应的基本数据类型称之为自动拆箱

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

Integer i=Integer.valueOf(10);
System.out.println(i);
//此处输出10
int j=i.intValue();
System.out.println(j);
//此处输出10

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

但是Java中只是对部分基本数据类型对应包装类的部分数据进行了缓存:

  1. byteshortintlong所对应包装类的数据缓存范围为 -128~127(包括-128和127);
  2. floatdouble所对应的包装类没有数据缓存范围;
  3. char所对应包装类的数据缓存范围为 0~127(包括0和127)
  4. boolean所对应包装类的数据缓存为true和false

Java中的 == 有两种作用:

  1. 如果是基本数据类型则用于判断其值是否相等;

  2. 如果为引用类型则用于判断两者的地址是否相同。

    基本数据类型包装类中的equals方法用于比对相同包装类中的值是否相等,如果两者的包装类类型相同而且值相等,则返回true,反之返回false;

Integer a=128;
Integer b=128;
System.out.println(a==b);
//输出false,因为a和b的值超出了int对应的包装类的缓存范围
System.out.println(a.equals(b));
//输出true,值和数据类型相同
Short c=128;
System.out.println(a.equals(c));
//输出false,因为自处a和c的数据类型不同

基本数据类型包装类中的parseXXX(String s)方法用于将字符串类型数据转换为相应的基本数据类型,例如:parseInt();

int i=Integer.parseInt("25");
float j=Float.parseFloat("2.5");

注意:char类型包装类Character没有相应的parseXXX方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值