包装类详解

1.包装类及方法

2.底层实现

3.自动装箱和拆箱

4.总结

5.Integer成员方法

String line = sc.nextLine();

6.缓存机制-享元模式

  • 有缓存的包装类:ByteShortIntegerLongCharacterBoolean(6 个);
  • 无缓存的包装类:FloatDouble(2 个,浮点型无固定高频范围,缓存无意义);
  • 核心用法:必须用 valueOf() 方法才能触发缓存(new 构造方法 会强制创建新对象,不触发缓存)。
包装类 缓存范围(默认) 特殊说明
Boolean TRUEFALSE 两个静态对象 无范围,直接缓存唯一的两个值
Byte -128 ~ 127(覆盖所有可能值) Byte 取值范围本身就是 -128~127,全量缓存
Short -128 ~ 127 固定范围,不可扩展
Integer -128 ~ 127 可通过 JVM 参数 java.lang.Integer.IntegerCache.high=N 扩大上限(如设为 500)
Long -128 ~ 127 固定范围,不可扩展
Character '\u0000' ~ '\u007F'(0~127) 对应 ASCII 码字符,高频使用场景多
Float 无缓存 浮点型数值离散,无固定高频范围
Double 无缓存 同上,缓存收益远小于成本

7.性能注意事项

避免不必要的装箱拆箱:循环中使用包装类会有性能开销
缓存范围:了解各包装类的缓存范围,合理使用valueOf()
空指针:包装类可能为null,拆箱时要判空
比较使用equals:==比较的是对象引用而非值

相关推荐
CHANG_THE_WORLD5 分钟前
PDF结构的清晰图示
java·服务器·pdf
MinterFusion6 分钟前
Java后端高频术语表
java·开发语言·后端·程序员·大厂面试·术语
indexsunny8 分钟前
互联网大厂Java面试实录:Spring Boot到微服务的深入探讨
java·spring boot·微服务·面试·eureka·kafka·jwt
鸽鸽程序猿13 分钟前
【JavaEE】【SpringAI】Tool Calling(工具调用)
java·java-ee
于先生吖18 分钟前
高并发稳定运营,JAVA 动漫短剧小程序 + H5 源码
java·开发语言·小程序
云和数据.ChenGuang20 分钟前
鸿蒙应用对接DeepSeek大模型:构建智能问答系统的技术实践
java·华为·langchain·harmonyos·euler·openduler
曹牧21 分钟前
在 Eclipse 中变更 SVN 地址
java·svn·eclipse
中科三方23 分钟前
域名NS记录修改全攻略:规则、误区、实操流程和常见问题
java·后端·spring
墨白曦煜23 分钟前
告别 Thread.stop():并发编程的最高礼仪——两阶段终止模式
java
重生之我是Java开发战士29 分钟前
【笔试强训】Week1:点击消除,数组中两个字符串的最小距离,dd爱框框,腐烂的苹果,大数乘法
java·开发语言·算法