Java 基础(基本数据类型之间的运算规则)
7种基本数据类型变量间的运算,不包含 boolean 类型。
自动类型提升:
结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
byte, char, short --> int --> long --> float --> double
注意:此时的容量大小指的是,表示数的范围的大和小,比如:float 容量要大于 long 的容量
class VariableTest2 { public static void main(String[] args) { byte b1 = 2; int i1 = 129; int i2 = b1 + i1; long l1 = b1 + i1; System.out.println(i2); // 131 System.out.println(l1); // 131 float f1 = b1 + i1; System.out.println(f1); // 131.0 short s1 = 123; double d1 = s1; System.out.println(d1); // 123.0 char c1 = 'a'; int i3 = 10; int i4 = c1 + i3; System.out.println(i4); // 107 } }
强制类型转换:自动类型提升运算的逆运算
- 需要使用强转符:()
- 强制类型转换,可能导致精度损失
class VariableTest3 { public static void main(String[] args) { double d1 = 12.9; // 精度损失 int i1 = (int)d1; System.out.println(i1); // 12 // 精度正常 long l1 = 123; short s2 = (short)l1; System.out.println(s2); // 123 // 精度损失 int i2 = 128; byte b = (byte)i2; System.out.println(b); // -128 } }
class StringTest{ public static void main(String[] args){ String str1 = "123"; int num1 = Integer.parseInt(str1); System.out.println(num1); // 123 } }
class ReviewTest { public static void main(String[] args){ char c1 = 'a'; char c2 = 97; System.out.println(c1); //a System.out.println(c2); //a char c3 = 65; //char c4 = '65'; 编译失败 char c5 = '6'; System.out.println(c3); int i1 = (int)c5; System.out.println(i1); //54 } }

浙公网安备 33010602011771号