类型转换:
1、存在某种类型的变量赋值给另一种类型的变量;
2、存在不同类型的数据一起运算。
自动类型转换:
类型范围小的变量,可以直接赋值给类型范围大的变量。
byte类型赋值给int类型,就是自动类型转换。
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个字节。
//int -> double
int c = 100;
double d = c;
System.out.println(d);
输出结果是100.0
// char -> int
char ch = 'a';
int i = ch;
System.out.println(i);
输出结果是:97
开发的过程中,存在不同类型的变量赋值给其他类型的变量。
什么是自动类型转换:
范围小的变量,可以直接赋值给类型范围大的变量。
表达式的自动类型转换:
在表达式中,小范围类型的变量,会自动转换成成表达式较大范围的类型,再参与运算。
byte、short、char->int->long->float->double
注意事项:
表达式的最终结果类型由表达式中的最高类型决定。
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类型参与运算的。