文章目录
- 定义
- 分类
- 算术运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算符
- 位运算符
- 三元运算符
- 运算符的优先级
定义
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
分类
算术运算符
注意:
- 取模运算(%)的结果,不一定总是整数,符号和被模数相同。左右两端类型要一致。
- 除法运算(/)在整数之间做除法时,只保留整数部分而舍弃小数部分。 例如12/5=2。
- 加法运算(+)当String字符串与其他数据类型只能做连接运算,并且结果为String类型
- 自增自减:前++ 先+1后运算;后++ 先运算后+1。类型不会自动转换
赋值运算符
=,+=, -=, *=, /=, %=
short s = 10;
s = s + 2; //编译失败,s+2类型自动转换为int
s += 2; //不会改变变量本身的数据类型
比较运算符(关系运算符)
注意事项
- 比较运算符的两端都是boolean类型,为true或者false;
- “>” “<” “>=” “<=” 只能用于数值类型的数据之间。
- “==” 和 “!=” 可以用于数值类型和其他引用类型变量之间。
Account acct1 = new Account();
Account acct2 = new Account();
boolean b = (acct1 == acct2); //false
逻辑运算符
&—逻辑与 | —逻辑或 !—逻辑非
&& —短路与 || —短路或 ^ —逻辑异或(左右两边不同)
- &:左边无论真假,右边都会进行运算;&&:如果左边为假,则右边不进行运算;
- | 与 || 的区别同上;在使用的时候建议使用&&和||;
- ^与或 | 的不同之处是:当左右都为true时,结果为false。
- 逻辑运算符操作的都是boolean类型的变量。
位运算符
位运算是直接对整数的二进制进行的运算。
三元运算符
- 格式
- (条件表达式)?表达式1:表达式2;
- 为true,运算后的结果是表达式1; 为false,运算后的结果是表达式2;
- 表达式1和表达式2为同种类型
- 三元运算符与if-else的联系与区别
- 三元运算符可简化if-else语句
- 三元运算符要求必须返回一个结果
- if后的代码块可有多个语句
int max = (1>2)?1:2;
运算符的优先级
只有单目运算符、三元运算符、赋值运算符是从右向左运算的。