CS-Notes 学习笔记
Java 后端 · Java 基础

自动装箱和拆箱是怎样实现的?有什么要注意的地方?

先自己想一想,再看参考要点

参考要点

  • 基本类型与对应的包装类型之间赋值时自动完成,装箱调用 Integer.valueOf(),拆箱调用 intValue()
  • 对 null 拆箱会抛出 NullPointerException,例如 Map 中没有这个键时 int n = map.get(key)
  • 条件表达式的两个分支分别是 Integer 和 int 时,结果类型是 int,取到 null 时同样会拆箱出错
  • valueOf() 对 -128~127 使用缓存池,这个范围内装箱得到的是同一个对象
在学习站中自测这道题

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。