包装类详解

1.包装类及方法

2.底层实现

3.自动装箱和拆箱

4.总结

5.Integer成员方法

String line = sc.nextLine();

6.缓存机制-享元模式

  • 有缓存的包装类:Byte、Short、Integer、Long、Character、Boolean(6 个);
  • 无缓存的包装类:Float、Double(2 个,浮点型无固定高频范围,缓存无意义);
  • 核心用法:必须用 valueOf() 方法才能触发缓存(new 构造方法 会强制创建新对象,不触发缓存)。
包装类 缓存范围(默认) 特殊说明
Boolean TRUE、FALSE 两个静态对象 无范围,直接缓存唯一的两个值
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:==比较的是对象引用而非值

相关推荐
IT枫斗者枫哥2 小时前
MyBatis一对多分页:LIMIT 20,为什么凑不齐20个订单?
java·数据库
代码方舟2 小时前
Java数据工程:利用天远全网运营商三要素优化线上实名认证合规体验
java·人工智能
BBmmo2 小时前
我的 Java 学习笔记 · 第 7 篇:泛型与通配符
java
独泪了无痕2 小时前
Hutool之RandomUtil:随机数生成的终极利器
java·后端
花开路口2 小时前
深入理解 Java/Kotlin 协变与逆变
java·kotlin
运行时异常2 小时前
【WMS 仓储系统集成 AI Agent 实战】第 7 讲:Vue3 前端工程化——Token 刷新锁、Markdown 渲染踩坑与权限体系
java
她的男孩2 小时前
开放接口限流从 20 改到 200 还是每分钟 20 次:拆完防重放+幂等+限流,我找到 5 个静默失效的坑
java·后端·架构
天天被压力2 小时前
【Python 量化取数指南 #13】Python 把行情落库:sqlite 一键存,回测随用随取
java·人工智能·python
天天被压力2 小时前
【Python 量化取数指南 #14】Python 清洗行情数据:复权停牌对齐,回测不翻车
java·人工智能·python
独泪了无痕2 小时前
开发利器Hutool之MapUtil的使用
java·后端