提示:如果你有足够的精力,请记住运算符的优先级!
1. 算术运算符
+ - * / %(求余/求模运算符) ++ --
++ -- 稍微有点麻烦,有个好办法:自己写个Demo测试一下,就可以搞定!
2. 关系运算符
> < == != >= <=
3. 逻辑运算符
& | ^ ! && ||
<1> & | ^ 既可以对逻辑表达时进行操作,也可以对一般数据类型进行操作
int a = 1;//0x0001 int b = 2;//0x0002 System.out.println("对一般数据类型进行操作"); System.out.println(a&b);//0,按位求余 System.out.println(a^b);//3,按位异或 System.out.println(a|b);//3,按位求或 System.out.println("对逻辑表达时进行操作"); System.out.println(a == 1 & b == 2);//true System.out.println(a == 1 | b == 2);//true /*两者不一致时才为真*/ System.out.println(a == 1 ^ b == 2);//true+true = false System.out.println(a == 12 ^ b == 2);//false+true = true //false+true = true System.out.println(a == 1 ^ b == 22); //true+true = false System.out.println(a == 12 ^ b == 22);
<2> && || ! 只可以对逻辑表达时进行操作,不可以对一般数据类型进行操作
//均会报错 System.out.println(a&&b); System.out.println(a||b); System.out.println(!a);
<3> 区别
&:普通与 &&:短路与|:普通或 ||:短路或
@1. 当在(a && b)条件下,当a为false时,不用再判断b了,表达式已经为false;
@2. 当在(a || b)条件下,当a为true时,不用再判断b了,表达式已经为true;
@3. 而 & 和 | 则需要两边都进行判断 才行 !
4. 位运算符int a = 1; int b = 2; System.out.println("a+b= " + a + b);//a+b= 12 System.out.println("a+b= " + (a + b));//a+b= 3,括号的优先 //级最大,所以先计算a + b的值然后再将其转换为string输出。 以下类推。 System.out.println("------------------------------"); int i = 12; char ch = 24; System.out.println("i+ch = " + i + ch);//i+ch = 12一个字 //符(24对应的字符) System.out.println("i+ch = " + (i + ch));//i+ch = 36