运算符
Java语言支持如下运算符
-
算术运算符:+,-,*,/,%,++,–
操作符 描述 + 加法运算符 - 减法运算符 * 乘法运算符 / 除法运算符 % 取余运算符 ++ 自增运算符 – 自减运算符 补充
public class Demo01 { public static void main(String[] args) { //++ -- 自增,自减 一元运算符 int a=3; int b=a++;//先给b赋值,再自增(等价于 b=a;a=a+1;) System.out.println(b); System.out.println(a); int c=++a;//先自增,再给c赋值(等价于 a=a+1;c=a;) System.out.println(c); System.out.println(a); //自减亦是如此 } }
在“+”号运算符两侧,只要有一方出现String类型,就会把其他操作数都转换成String类型,在进行连接。
public class Demo03 { public static void main(String[] args) { int a=10; int b=20; //字符串连接 + ,String System.out.println(""+a+b);//字符串在前面,后面拼接 System.out.println(a+b+"");//字符串在后面,前面依旧运算 } }
-
赋值运算符:=
操作符 描述 = 将右侧操作数的值赋给左侧操作数 -
关系运算符:>,<,>=,<=,==,!=
操作符 描述 > 检查左操作数的值是否大于右操作数的值,如果是那么条件为真 < 检查左操作数的值是否小于右操作数的值,如果是那么条件为真 >= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真 <= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真 == 检查如果两个操作数的值是否相等,如果相等则条件为真 != 检查如果两个操作数的值是否相等,如果值不相等则条件为真 -
逻辑运算符:&&,||,!
操作符 描述 && 逻辑与运算符,当且仅当两个操作数都为真,条件才为真(and) || 逻辑或操作符,如果任何两个操作数任何一个为真,条件为真(or) ! 逻辑非运算符,用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false(取反) public class Demo02 { public static void main(String[] args) { boolean a=true; boolean b=false; System.out.println("a && b:"+(a&&b));//逻辑与运算符,当且仅当两个操作数都为真,条件才为真(and) System.out.println("a || b:"+(a||b));//逻辑或操作符,如果任何两个操作数任何一个为真,条件为真(or) System.out.println("!(a && b):"+!(a&&b));//逻辑非运算符,用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false(取反) //短路运算 int c=5; boolean d=(c<4)&&(c++<4); System.out.println(d); System.out.println(c); } }
短路运算
逻辑操作符执行短路求值。所谓短路,就是当一个参与运算的操作数足以推断该表达式的值时,另一个操作数(可能是表达式)就不会执行。
在使用逻辑操作符时,当两个操作数都是true时,结果是true,但当第一个操作是false时,结果必须是false,此时不再判断第二个操作。
-
位运算符:&,|,^,~,>>,<<,>>>(了解)
操作符 描述 & 如果相对应位都是1,则结果为1,否则为0 | 如果相对应位都是 0,则结果为 0,否则为 1 ^ 如果相对应位值相同,则结果为0,否则为1 ~ 按位取反运算符翻转操作数的每一位,即0变成1,1变成0 >> 按位右移运算符,左操作数按位右移右操作数指定的位数 << 按位左移运算符,左操作数按位左移右操作数指定的位数 >>> 按位右移补零操作符,左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充 /** * 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(10进制)) * >> (箭头朝右,即为右移)(右移即数字/2(10进制)) * * 0000 0000 0 * 0000 0001 1 * 0000 0010 2 * 0000 0100 4 * 0000 1000 8 * 0001 0000 16 */
-
条件运算符(?:)
条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
-
扩展赋值运算符:+=,-=,*=,/=
操作符 描述 += 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 -= 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 *= 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 /= 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 public class Demo03 { public static void main(String[] args) { int a=10; int b=20; a+=b;//a=a+b System.out.println(a); a-=b;//a=a-b System.out.println(a); //三元运算符 //x?y:z //如果x==true,则结果为y,否则结果为z int score =90; String type =score<60?"不及格":"及格";//必须掌握 System.out.println(type); } }