java中基本类型转包装类推荐自动装箱和valueof()静态工厂方法,避免使用已弃用的构造器;自动装箱底层调用valueof()并复用缓存对象(如integer缓存-128~127),valueof()更安全高效;字符串转换用valueof()或parsexxx()配合装箱,需处理numberformatexception。

Java 中通过包装类将基本数据类型转换为对象,本质是利用每个基本类型对应的引用类型(如 Integer 对应 int),主要有三种常用方式:自动装箱、构造方法(已过时)、静态工厂方法(推荐)。
自动装箱(最常用、最简洁)
从 Java 5 开始支持,编译器自动将基本类型转为对应包装类对象,无需手动调用方法。
-
int → Integer:
Integer i = 10;(等价于Integer i = Integer.valueOf(10);) -
boolean → Boolean:
Boolean b = true; -
double → Double:
Double d = 3.14;
注意:自动装箱底层调用的是 valueOf() 方法,不是构造器,因此会复用缓存对象(如 -128 到 127 的 Integer),有利于性能。
使用 valueOf() 静态工厂方法(推荐显式写法)
这是最安全、高效且语义清晰的方式,所有包装类都提供该方法,返回缓存或新创建的对象。
Integer num = Integer.valueOf(42);Character ch = Character.valueOf('A');-
Boolean flag = Boolean.valueOf("true");(支持字符串解析)
相比构造器,valueOf() 可复用常量池中的对象(如 Integer 缓存 -128~127),减少内存开销;而 new 构造器每次都会新建对象。
避免使用构造器(不推荐)
早期写法如 new Integer(10) 或 new Boolean(true) 在 Java 9 已标记为 @Deprecated,因为:
- 无法利用缓存,性能差
- 语义不如
valueOf()明确 - 部分构造器(如
new Double(String))已被移除
所以应统一改用 valueOf() 或依赖自动装箱。
字符串转包装类对象(常见需求)
当数据来自用户输入或配置文件(字符串形式)时,可使用各包装类的 parseXxx() 系列方法(返回基本类型),再配合自动装箱或 valueOf:
-
Integer i = Integer.valueOf("123");(推荐,直接得对象) -
int x = Integer.parseInt("123"); Integer obj = x;(先解析成基本类型,再装箱) - 注意:字符串非法会抛
NumberFormatException,需 try-catch 处理
类似还有 Double.valueOf("3.14")、Boolean.parseBoolean("false") 等。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











