Java基本数据类型转换学习总结

本周学习了Java的基本数据类型转换,分为自动类型转换和强制类型转换。

一、8种基本数据类型(字节大小,容量从小到大)
1. byte  1字节(8位)
2. short 2字节(16位)
3. char  2字节(16位)
4. int   4字节(32位)
5. long  8字节(64位)
6. float 4字节(32位)
7. double 8字节(64位)

规则:容量小 → 容量大,可以自动转换;容量大 → 容量小,必须强制转换。

二、自动类型转换(隐式转换)
1.条件:小范围类型向大范围类型转换,程序自动完成,不需要手动写代码

2.发生场景
①赋值: int a = 10; long b = a; 
②混合运算:多种类型一起运算,自动提升为容量更大的类型

3. 重点注意
byte 、 short 、 char 只要参与数学运算,会直接提升为int(4字节)
示例:
byte b1 = 3; byte b2 = 4; //byte b3 = b1 + b2; //编译报错,b1+b2运算后变成int类型

三、强制类型转换(显式转换)
1.条件:大范围类型转为小范围类型,需要手动强制转换

2.语法: (目标类型)变量
示例:
double num = 3.99; int i = (int) num; //i结果等于3,直接舍弃小数,不会四舍五入

3.存在风险
(1)浮点转整数:直接丢弃小数部分,精度丢失
(2)大数转小字节类型:数值溢出,数据失真
示例:
int a = 130; byte b = (byte)a; //结果不是130,发生溢出

四、复合赋值运算符的隐式强转(考试高频)
 += 、 -= 、 *= 这类复合运算符自带强制类型转换
示例:
short s = 2; s +=3; //等价 s=(short)(s+3),编译正常通过 //s = s +3; //报错,s+3运算提升为int,没有强转

五、字符串与基本类型转换
1.数字和字符串做 + 运算,结果为字符串
示例:
System.out.println(10 + "20"); //输出1020
System.out.println(10 + 20 + "30"); //输出3030

六、易错点总结
1.byte 、 short 、 char 一旦参与运算,就提升为int
2.强制转换只作用紧跟后面的变量,不是整个表达式
3.强制转换会造成精度丢失、数据溢出
4.复合赋值运算符自带强制转换,普通赋值不会自动强转

七、学习小结
类型转换是开发中经常遇到的基础问题。分清自动转换与强制转换,记住每种类型所占字节,注意运算提升、溢出、精度丢失等问题,可以规避大量编译错误和隐藏逻辑错误。

posted @ 2026-09-12 16:28  余子馨  阅读(7)  评论(0)    收藏  举报