Java中基本类型与包装类通过自动装箱/拆箱(Java 5起)或静态方法(如valueOf、parseInt)转换;需注意缓存范围(-128~127)、null导致的NPE及==与equals的正确使用。

Java 中基本数据类型和包装类之间的转换主要靠自动装箱(autoboxing)和自动拆箱(unboxing),也可以手动调用包装类的静态方法或实例方法完成。关键在于理解何时发生自动转换、哪些操作会触发、以及潜在的空指针风险。
自动装箱和自动拆箱
从 Java 5 开始,编译器会在合适场景下自动完成基本类型 ↔ 包装类的转换:
-
装箱:把基本类型转为对应包装类对象,例如
int → Integer -
拆箱:把包装类对象转为对应基本类型,例如
Integer → int
示例:
Integer a = 100; // 自动装箱:int → Integer<br>int b = a; // 自动拆箱:Integer → int<br>Boolean flag = true; // boolean → Boolean<br>if (flag) { ... } // 自动拆箱参与条件判断
手动转换方式
需要显式控制或处理 null 时,推荐使用包装类提供的静态方法:
立即学习“Java免费学习笔记(深入)”;
-
Integer.parseInt("123")→ 返回int(注意不是Integer) -
Integer.valueOf("123")→ 返回Integer(推荐,有缓存优化) -
Double.parseDouble("3.14")→double -
Boolean.parseBoolean("true")→boolean(不区分大小写)
反向转换(基本类型 → 字符串)通常用 String.valueOf(x) 或直接字符串拼接,如 "" + 42。
将后端 Java 接口文档转换为前端 TypeScript 类型定义(interface / type)。输入:飞书文档、Spring Boot 接口文档、Swagger/OpenAPI、手写 API 文档等。输出:包含请求参数与响应结果的 .md 文件,含完整 JSDoc 注释。触发关键词:Java 转 TS、接口转换、生成前端类型、接口文档转 TypeScript、DTO/VO/BO 转 interface、后端文档转前端类型、生成接口类型、类型定义生成。
注意缓存和 null 安全
Integer、Short、Byte、Character、Long 在 -128 到 127 范围内会复用对象(内部缓存),所以:
Integer a = 100, b = 100;<br>System.out.println(a == b); // true(引用相同)<br>Integer c = 200, d = 200;<br>System.out.println(c == d); // false(新建对象,引用不同)
拆箱时如果包装类变量为 null,会抛出 NullPointerException:
Integer x = null;<br>int y = x; // 运行时报错!
建议:优先用 == 比较基本类型,用 .equals() 比较包装类;拆箱前判空或用 Objects.requireNonNull()。
常见包装类与基本类型对照表
对应关系固定,名称首字母大写:
-
byte↔Byte -
short↔Short -
int↔Integer -
long↔Long -
float↔Float -
double↔Double -
char↔Character -
boolean↔Boolean
没有 String 的基本类型——String 是引用类型,不属于基本类型体系。

















