运算符
-
算数运算符:+,-,*,/,%(模),++,–
-
赋值运算符:=
-
关系运算符:>,<,>=,<=,==,!=instanceof
-
逻辑运算符:&&,||,!(取反)
-
---------------------------(重点掌握上面4个就好了)
-
位运算符(跟位相关的):&,|,^,~,>>,<<,>>>(了解它们就行了!)
-
--------------------------------(下面两个是偷懒用的)
-
条件运算符?:
-
扩展赋值运算符:+=,-=,*=,/=
口诀
&& 与运算,有假为假
|| 或运算,有真为真
! 非运算,假为真、真为假
异或运算,同号为假、异号为真
package operator;
//逻辑运算符
public class Demo05 {
public static void main(String[] args) {
//与(and) 或(or) 非(取反)
boolean a=true;
boolean b=false;
System.out.println("a && b:"+(a&&b));//结果:false 口诀:有假为假
System.out.println("a || b:"+(a||b));//结果:true 口诀:有真为真
System.out.println("!(a && b):"+!(a&&b));//结果:true 口诀:真为假,假为真
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
}
}
含义 | Java |
---|---|
按位与 | a & b |
按位或 | a |b |
按位异或 | a ^ b |
按位取反 | ~a |
左移 | a <<b |
带符号右移 | a >> b |
无符号右移 | a>>> b |
package operator;
public class Demo06 {
public static void main(String[] args) {
/*
不要轻易的去使用位运算,很容易出错的
A = 0011 1100
B = 0000 1101
---------------------------
A&B = 0000 1100 与 口诀:两个为一,才为一;则反之。
A|B = 0011 1101 或 口诀:两个为零,才为零;则反之。
A^B = 0011 0001 异或 口诀:两个相同为零;否则为一。
~B = 1111 0010 取反 口诀:完全相反
位运算有一个好处,效率极高,应用在底层。
2*8=16 也可以写成2*2*2*2
<< 左移相当于 *2
>> 右移相当于 /2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);//结果 16
}
}