Java开发手册-包装类和字符串

包装类

前面八种基本数据类型(boolean、byte、char、short、int、long、float、double)都有相应的包装类。
包装类的存在解决了基本数据类型无法做到的事情泛型类型参数、序列化、类型转换、高频区间数据缓存。尤其是最后-项。

数据缓存

以Integer为例:我们都知道 Integer会缓存- 128 127 之间的值,对于 Integer var=?在- 128 127 之间的赋值, IntegerCache.cache 产生,会复用已有对象,这个区间内的 Integer 值可以直接使用==进行判断,但是这个区间之外的所有数据都会在堆上产生,并不会复用已有对象,这是一个大问题。因此,推荐所有包装类对象之间值的比较 全部使用 quals ()方法。

最后详细介绍 Integer ,因为它是 Java据世界里应用最广的数据类型,缓存范围是 128 127 。但它是唯一可以修改缓存范围的包装类,在 VM options 加入参数-XX:AutoBoxCacheMax=7777,即可设置最大缓存值为 7777

// Long 类型只续存 128 127 之间的数值
Long e = 10001 ; 
Lo f = 10001 ; 
System.out.prntln("Long=lOOO is"( e == f)) ;

// JVM AutoBoxCacheMax 只对 Integer 对象有效
Integer x = 1001 ; 
Integer y = 1001 ; 
System.out .println ("Integer=lOOl is" + (x == y));


//运行结果:
Long=lOOO is false 
Integer=lOOl is true

该例很好地说明了 Long 只是缓存了 -128~ 127 之间的值,而 1000L 没有被缓存;在将 Integer 最大缓存值改为 777 后, 1001 被成功缓存。合理掌握包装类的缓存策略,防止遇到问题是一个方面,使自己的程序性能最大化,更是程序员的情怀所在。

字符串

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值