3.1 运算符与表达式
算术运算符、关系运算符、逻辑运算符、位运算符等
3.1.1 算术运算符与表达式
1. 加减运算符
(1)+、-是耳目运算符,即连接两个单元的运算符
(2)结合方向从左到右
(3)运算符操作元是整型、浮点型数据
(4)优先级:4
2.乘除和求余运算符
(1)*、/、%是二目运算符
(2)结合方向从左到右
(3)运算符操作元是整型、浮点型数据
(4)优先级:3
3.1.2 自增、自减运算符
(1)++、--是单目运算符,可以放在操作元之前,也可以放在操作元之后
(2)操作元必须是整型、浮点型数据,作用是使变量的值增1或者减1
3.1.3 算数混合运算的精度
精度从低到高的排列顺序:byte、char、int、long、float、double
Java在计算算术表达式精度规则:
(1)算术表达式中有双精度浮点数(double),按双精度进行运算
(2)算术表达式中最高精度是单精度浮点数(float),按单精度进行运算
(3)算术表达式中最高精度是long型整数数(float),按long精度进行运算
(3)算术表达式中最高精度低于int型整数,按int进行
Java允许把不超出byte、short、和chart的取值范围算数表达式的值赋给byte、short、和chart型变量
3.1.4关系运算符与关系表达式
(1)关系运算符:
- 关系运算符是二目运算符,用来比较两个值的关系
- 运算结果是boolean型
运算符 | 优先级 | 用法 | 含义 | 结合方向 |
> | 6 | op1 > op2 | 大于 | 左到右 |
< | 6 | op1 < op2 | 小于 | 左到右 |
>= | 6 | op1 >= op2 | 大于等于 | 左到右 |
<= | 6 | op1 <= op2 | 小于等于 | 左到右 |
== | 7 | op1 == op2 | 等于 | 左到右 |
!= | 7 | op1 != op2 | 不等于 | 左到右 |
3.1.5 逻辑运算符与逻辑表达式
(1)包括&&、||、!,&&、||为二目运算符,!为单目运算符
(2)操作元必须是boolean型数据,运算符可以用来连接guan'xi'biao'da's
运算符 | 优先级 | 用法 | 含义 | 结合方向 |
&& | 11 | op1 && op2 | 逻辑与 | 左到右 |
|| | 12 | op1 || op2 | 逻辑或 | 左到右 |
! | 2 | !op1 | 逻辑非 | 左到右 |
3.1.6 赋值运算符与赋值表达式
(1)=是二目运算符,左面的操作元必须是变量,不能是常量或者表达式
(2)运算优先级:14
(3)结合方向:从右到左
(4)不要将 “=” 与 “==” 混淆
3.1.7 位运算符
(1)按位与运算
(2)按位或运算
(3)按位非运算
3.1.8 instanceof 运算符
(1)二目运算符,左面操作元是对象,右面是类。
(2)当左面的对象是右面的类或者子类创建的对象时,该运算结果是true,否则是false
3.1.9 运算符综述
优先级 | 描述 | 运算符 | 结合性 |
1 | 分隔符 | [ ] () . , ; | |
2 | 对象归类、自增减运算、逻辑非 | instanceof ++ -- | 右到左 |
3 | 算术乘除运算 | * / % | 左到右 |
4 | 算术加减运算 | + - | 左到右 |
5 | 移位运算 | >> << >>> | 左到右 |
6 | 大小运算关系 | < <= > >= | 左到右 |
7 | 相等关系运算 | == != | 左到右 |
8 | 按位与运算 | & | 左到右 |
9 | 按位异或运算 | ^ | 左到右 |
10 | 按位或 | | | 左到右 |
11 | 逻辑与运算 | && | 左到右 |
12 | 逻辑或运算 | || | 左到右 |
13 | 三目运算条件 | ?: | 左到右 |
14 | 赋值运算 | = | 右到左 |