类型转换
自动类型转换
- 特点代码不需要进行特殊处理,自动完成
- 规则:数据范围从小到大
long num1 = 100;
System.out.println(num1);
// 左边是double类型,右边是float类型
// 从小到大
double num2 = 2.16F;
// long --> float
// float 范围更大
float num3 = 21L;
强制类型转换
- 特点:代码需要进行特殊的格式处理,不能自动完成
- 格式:范围小的类型 范围小的变量名 = (范围小的类型)范围大的数据;
int num4 = (int)100L;
// 从大范围转换为小范围
注: 数据溢出
int num5 = (int)2.5; //实际上为 2
注: 当 short、byte、char运算时,自动转换为int
short num6 = 5;
short num7 = 20;
int num8 = num6 + num7;
//此时 num6 和 num7 运算时 已经先被转换为int
重要: ‘A’ => 65 ‘0’ =>48 ‘a’ =>97
运算符与表达式
运算符:
进行特定操作的符号
表达式:
用运算符连起来的式子
注意事项:
- 如果运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种。
- 三元运算符的结果必须使用;两个表达式都必须符合左边数据类型要求。
- 赋值时,如果右侧的表达式中全是常量,没有任何变量,那么编译器javac将会直接将若干个常量表达式计算得到结果
short c = 4;
short d = 9;
short a = 5 + 8 ; //正确
short b = c + d ; //错误
//short + short --> int + int --> int --> short