包装类详解

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:==比较的是对象引用而非值

相关推荐
咕白m6251 小时前
Java 实现 Excel 转 HTML:完整示例
java
RealPluto1 小时前
Spring AOP 失效排查
java·spring
码路飞2 小时前
热榜全是 OpenClaw,但我用 50 行 Python 就造了个桌面 AI Agent 🤖
java·javascript
Nyarlathotep01132 小时前
LinkedList源码分析
java·后端
用户8307196840822 小时前
Java 告别繁琐数据统计代码!MySQL 8 窗口函数真香
java·sql·mysql
带刺的坐椅3 小时前
SolonCode v0.0.20 发布 - 编程智能体(新增子代理和浏览器能力)
java·ai·agent·solon·solon-ai·claude-code·openclaw
会员源码网4 小时前
数字格式化陷阱:如何优雅处理 NumberFormatException
java
孔明click334 小时前
Sa-Token v1.45.0 发布 🚀,正式支持 Spring Boot 4、新增 Jackson3/Snack4 插件适配
java·sa-token·开源·springboot·登录·权限认证
程序猿阿越5 小时前
Kafka4源码(二)创建Topic
java·后端·源码阅读
悟空码字5 小时前
Spring Boot 整合 MongoDB 最佳实践:CRUD、分页、事务、索引全覆盖
java·spring boot·后端