【高频面试题】Java 基础类型 + 包装类 + String 互相转换

分几大类:

基本类型 (byte/short/int/long/float/double/boolean/char)、包装类 (Integer/Long 等)、String

记住:包装类和基本类型之间:自动装箱、自动拆箱

1. 基本类型 ↔ 包装类(装箱拆箱)

java 复制代码
// 装箱:基本 → 包装(自动)
Integer a = 10;  

// 拆箱:包装 → 基本(自动)
int b = a;

底层: Integer.valueOf(10) 装箱;a.intValue() 拆箱

⚠️ 坑:包装类为 null,拆箱直接空指针!

java 复制代码
Integer num = null;
int x = num; // NullPointerException

2. 基本类型 → String

3 种写法:

java 复制代码
int i = 10;
String s1 = i + "";          // 最简单
String s2 = String.valueOf(i); //推荐
String s3 = Integer.toString(i);

3. String → 基本类型(重点)

java 复制代码
String s = "100";
int num = Integer.parseInt(s);
long l = Long.parseLong(s);
double d = Double.parseDouble(s);
boolean bl = Boolean.parseBoolean("true");

异常:字符串不是数字,抛出 NumberFormatException

4. String ↔ 包装类

java 复制代码
// String → Integerj
Integer i1 = Integer.valueOf("100");

// Integer → String
String s = i1.toString();

5. 基本类型之间互相转换(小→大自动;大→小强制强转)

自动转换(隐式,小范围 → 大范围)

byte → short → int → long → float → double

java 复制代码
int a = 100;
long b = a; //自动转
double c = b;

强制转换(大范围 → 小范围,可能丢失精度)

java 复制代码
double d = 3.99;
int i = (int) d; // 直接截断小数,结果=3,不是四舍五入

long l = 1000;
short s = (short) l;

注意:强制转型直接砍掉多余 bit,溢出会出错

char 特殊:char 本质是无符号 16 位整数,可以和 int 互相转

java 复制代码
char ch = 'A';
int code = ch; // 65
char c2 = (char)66; // 'B'

6. BigDecimal 和 String / Long / Integer 转换

java 复制代码
//String → BigDecimal(推荐)
BigDecimal bd = new BigDecimal("123.45");

//BigDecimal → String
String str = bd.toString();

//BigDecimal → long / int(注意溢出)
long num = bd.longValue();
int n = bd.intValue();

面试一句话总结

基本类型小转大自动转换;大转小要强制强转,会丢精度。 字符串转数字用parseXXX();数字转字符串用String.valueOf()。 基本类型和包装类自动装箱拆箱;包装类 null 拆箱会空指针。数字字符串格式不对会抛 NumberFormatException。

高频坑快速记

  1. (int)3.9 = 3,不是四舍五入
  2. Integer.parseInt("abc") 报 NumberFormatException
  3. Integer i=null; int x=i → NPE
  4. 基本类型转换顺序:byte<short<int<long<float
相关推荐
weixin_417396833 分钟前
酒店弱电怎么验收?四个阶段与逐项检查清单
开发语言·前端·php·综合布线·弱电
凤凰院凶涛QAQ10 小时前
《Java版数据结构 & 集合类剖析》Map & Set & 反射:“从哈希碰撞到红黑树转换,反射帮你扒开 HashMap 的桶数组看个究竟”
java·数据结构·算法
H.莓飛10 小时前
【数据结构】排序_OJ题(一):计数、桶与排序后的处理
java·开发语言·数据结构
wangchunyu11411 小时前
JAVA AQS与Lock实现原理(含CAS)
java·开发语言·word
爱喝水的鱼丶12 小时前
SAP-ABAP:ECC→S/4HANA ABAP 迁移升级指南——程序改造、语法兼容与性能优化 导语
运维·开发语言·性能优化·sap·abap·经验交流·开发交流
w_zero_one12 小时前
算法--模拟
java·数据结构·算法
小灰灰搞电子12 小时前
Rust+Slint 实现FTP客户端调试助手源码分享
开发语言·后端·rust
外收内放12 小时前
面向对象高级(实战案例)
开发语言·python·学习
Javatutouhouduan12 小时前
阿里1658页Java面试题总结(含答案)
java·高并发·java面试·java面试题·后端开发·java程序员·java八股文
秋天的怀念_David12 小时前
算法一千零一夜 · 第十三夜 幻方,武侠世界里的数学迷宫
java·程序人生·算法