计算机程序在处理数据时会进行大量的计算,而数据的运算则需要借助运算符和表达式来完成。
表达式是指由操作数和运算符组成的用于完成某种运算功能的语句
子表达式
Y = X * ( Z + 10 )
表达式
其中Y、X、Z、10 称为操作数,=、*、+ 称为运算符。
在Java语言中进行表达式求值时,同一优先级的运算符,运算次序由结合性决定,不同优先级的运算符,运算次序由优先级决定。
优先级 | 运算符 | 结合性 |
1 | () | 从左到右 |
2 | !、++、-- | 从右到左 |
3 | * 、/、 % | 从左到右 |
4 | + 、- | 从左到右 |
5 | > 、<、 >=、 <= | 从左到右 |
6 | ==、 != | 从左到右 |
7 | && | 从左到右 |
8 | || | 从左到右 |
9 | = 、+=、 -=、 *=、 /=、 %= | 从右到左 |
不同类型的数据在进行混合运算时需要进行类型转换,即将不同类型的数据转换为同种类型的数据后再进行计算。
针对于值类型的数据,类型转换主要包括自动类型转换和强制类型转换。
条件1:满足自动类型转换的条件
两种类型要兼容:
数值类型(整型和浮点型)互相兼容
目标类型大于源类型:
例如:double 型大于 int 型
条件2:操作数向大操作数类型转换,计算结果也为表达式中大操作数的类型
强制类型转换可以将大数据类型转化为小数据类型(如将double转换为int),在转换过程中会丢失数据的精度。