- 算术运算符
需要注意的是a++和++a的区别。
int d = 25; // 查看 d++ 与 ++d 的不同 System.out.println("d++ = " + (d++) ); System.out.println("++d = " + (++d) );
其中d++ = 25,++d = 27;相当于遇到print的时候,d++有一个顺序,从左到右,也就先完成之前的指令而非先运算再print。
还有需要注意的是,谁是得到商,谁得到余数。
/ | 除法 - 左操作数除以右操作数 | B / A等于2 |
% | 取余 - 左操作数除以右操作数的余数 | B%A等于0 |
- 关系运算符,都比较简单,暂时忽略
- 位运算符
操作符 | 含义 | 描述 | 例子 |
---|---|---|---|
& | 与 | 如果相对应位都是1,则结果为1,否则为0 | (A&B),得到12,即0000 1100 |
| | 或 | 如果相对应位都是 0,则结果为 0,否则为 1 | (A | B)得到61,即 0011 1101 |
^ | 如果相对应位值相同,则结果为0,否则为1 | (A ^ B)得到49,即 0011 0001 | |
〜 | 反转 | 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 | (〜A)得到-61,即1100 0011 |
<< | 按位左移运算符。左操作数按位左移右操作数指定的位数。 | A << 2得到240,即 1111 0000 | |
>> | 按位右移运算符。左操作数按位右移右操作数指定的位数。 | A >> 2得到15即 1111 | |
>>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 | A>>>2得到15即0000 1111 |
只有>>>(三个小箭头事儿多一点)会补齐数值
- 逻辑运算符,暂时忽略
- 赋值运算符,和算术运算符一样,需要区分 / =, (%)= 。
- 其他运算符
- 条件运算符
-
public static void main(String[] args){ int a , b; a = 10; // 如果 a 等于 1 成立,则设置 b 为 20,否则为 30 b = (a == 1) ? 20 : 30; System.out.println( "Value of b is : " + b ); // 如果 a 等于 10 成立,则设置 b 为 20,否则为 30 b = (a == 10) ? 20 : 30; System.out.println( "Value of b is : " + b ); }
instance of 该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
String name = "James"; boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真
- 运算符级别(资料来自菜鸟教程)
类别 | 操作符 | 关联性 |
---|---|---|
后缀 | () [] . (点操作符) | 左到右 |
一元 | expr++ expr-- | 从左到右 |
一元 | ++expr --expr + - ~ ! | 从右到左 |
乘性 | * /% | 左到右 |
加性 | + - | 左到右 |
移位 | >> >>> << | 左到右 |
关系 | > >= < <= | 左到右 |
相等 | == != | 左到右 |
按位与 | & | 左到右 |
按位异或 | ^ | 左到右 |
按位或 | | | 左到右 |
逻辑与 | && | 左到右 |
逻辑或 | | | | 左到右 |
条件 | ?: | 从右到左 |
赋值 | = + = - = * = / =%= >> = << =&= ^ = | = | 从右到左 |
逗号 | , | 左到右 |
这里的关联性是什么意思呢
(参考菜鸟教程的评论区,关联性表达的是运算的顺序,单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左运算。)
标签:左到,操作数,JAVA,++,运算符,按位,注意,20 From: https://www.cnblogs.com/cainiaodct/p/17851130.html