Java基础笔记07——类型转换
1.自动类型转换(隐式类型转换)
(1)满足条件:
1)两种类型彼此兼容
2)取值范围小的转取值范围大的
(2)规则:
1)boolean不可以转为其他的数据类型
2)byte、char、short之间不会相互转换,但三者在计算时首先转换为int
3)int、char、float、double相互转换时,遵循以下原则:
2.强制类型转换(显式类型转换)
(1)满足条件:
1)两种类型彼此不兼容
2)取值范围大的转取值范围小的
(2)风险:
1)精度下降
2)数字溢出
package com.lqh.chapter01; public class _04TypeCasting { public static void main(String[] args) { byte a1 = 110; byte a2 = 120; int a = a1 + a2;// a1和a2在进行计算时首先转换为int类型,所以结果为int类型 System.out.println(a); short b1 = 250; int b = b1;// 自动类型转换 System.out.println(b); int c1 = 127; int c2 = 129; byte c = (byte) c1;// 强制类型转换,c1的值在byte取值范围内,所以强制类型转换后没有数据丢失 System.out.println(c); c = (byte) c2;// 强制类型转换,c2的值不在byte取值范围内,所以强制类型转换后有数据丢失 System.out.println(c); } }
输出结果为:
230
250
127
-127