string与基本类型转换需通过包装类静态方法:string→基本类型用parsexxx()(boolean.parseboolean除外),→包装类用valueof(),基本类型→string首选string.valueof(),包装类↔基本类型依赖自动装箱/拆箱。

String 和基本数据类型之间不能直接赋值,必须借助包装类中提供的静态方法。这是 Java 中最规范、最安全的转换路径。
String → 基本数据类型:用 parseXxx() 最直接
每个数字型包装类都提供 parseXxx() 静态方法,比如 Integer.parseInt("123") 返回 int,Double.parseDouble("3.14") 返回 double。这些方法专为字符串解析设计,性能好、语义清晰。
- 遇到空字符串、null 或非数字格式(如 "abc")会抛出
NumberFormatException,务必做 try-catch 处理 -
Boolean.parseBoolean("true")是特例:只识别 "true"(忽略大小写),其他任何字符串都返回false - 字符型不能用
Character.parseCharacter()——这个方法不存在;需用str.charAt(0)或str.toCharArray()[0]
String → 包装类:valueOf() 更稳妥
如果目标是得到一个对象而非基本值,推荐用 valueOf()。它和 parseXxx() 行为接近,但返回的是包装类实例,且对 null 输入更友好:
-
Integer.valueOf("123")返回Integer对象,内部做了缓存优化(-128 到 127 范围内复用实例) -
Integer.valueOf(null)抛出NumberFormatException,和parseInt(null)一致 -
Boolean.valueOf("false")返回Boolean.FALSE实例,比new Boolean("false")更高效(后者已废弃)
基本数据类型 → String:valueOf() 是首选
String.valueOf(x) 支持所有 8 种基本类型及对应包装类,统一、无歧义、空安全:
-
String.valueOf(42)→ "42" -
String.valueOf(null)→ "null"(不会 NPE) -
String.valueOf(true)→ "true"
避免用 "" + x 拼接方式:虽然能工作,但底层会创建 StringBuilder,多一次对象开销,语义也不如 valueOf() 明确。
包装类 ↔ 基本类型:自动装箱/拆箱足够用
Java 5 起支持自动转换,日常编码中无需手动调用方法:
-
int i = 100; Integer obj = i;—— 自动装箱,等价于Integer.valueOf(i) -
Integer obj = 200; int j = obj;—— 自动拆箱,等价于obj.intValue() - 注意 null 拆箱风险:
Integer obj = null; int k = obj;会触发NullPointerException











