类型转换:
1、存在某种类型的变量赋值给另一种类型的变量;
2、存在不同类型的数据一起运算。
自动类型转换:
类型范围小的变量,可以直接赋值给类型范围大的变量。
byte类型赋值给int类型,就是自动类型转换。
java">package cn.ensource.type;public class TypeConversion {public static void main(String[] args) {// 目标:理解自动类型转换机制byte a = 12;int b = a;System.out.println(a);System.out.println(b);}
}
自动类型转换在计算机中的执行原理:
自动类型转换的其他形式:
byte->short(char)->int->long->float->double
char类型占两个字节。
C语言中的char是1个字节。
java">//int -> double
int c = 100;
double d = c;System.out.println(d);
输出结果是100.0
java">// char -> intchar ch = 'a';int i = ch;System.out.println(i);
输出结果是:97
开发的过程中,存在不同类型的变量赋值给其他类型的变量。
什么是自动类型转换:
范围小的变量,可以直接赋值给类型范围大的变量。
表达式的自动类型转换:
在表达式中,小范围类型的变量,会自动转换成成表达式较大范围的类型,再参与运算。
byte、short、char->int->long->float->double
注意事项:
表达式的最终结果类型由表达式中的最高类型决定。
java">package cn.ensource.type;public class TypeConversionDemo2 {private static 2 d;public static void main(String[] args) {// 目标:掌握表达式的自动类型转换机制byte a = 10;int b = 20;long c = 30;long rs = a + b + c;System.out.println(rs);double rs2 = a + b + 1.0;System.out.println(rs2);byte i = 10;short j = 20;short k = i + j;System.out.println(k);}
}
在表达式中,byte、short、char是直接转换成int类型参与运算的。
面试题:
byte、short、char在表达式都是直接转换成int类型参与运算的。
官方直接提升为int。能够兼容一个较大的结果。
表达式的最终结果类型是由谁决定的?
最终类型是由表达式中的最高类型决定的。
表达式的有哪些类型转换是要注意的?
byte、short、char是直接转换成int类型参与运算的。