对常量或者变量进行操作的符号。
运算符分为算术运算符,赋值运算符,比较运算符,逻辑运算符等。

1. 算术运算符

运算符 运算 范例 结果
+ 正好 +3 3
- 负号 -3 3
+ 5+5 10
- 6-4 2
* 3*4 12
/ 5/5 1
% 取模(求余) 7%5 2
++ 自增(前) a=2;b=++a; a=3;b=3;
++ 自增(后) a=2;b=a++; a=3;b=2;
自减(前) a=2;b=—a; a=1;b=1;
自减(后) a=2;b=a—; a=1;b=2;

注意:

除法运算时,当除数和被除数都为整数时,结果也是一个整数;当除数运算有小数参与,结果也是一个小数。 取模(%)运算时,运算结果的正负取决于被模数(%左边的数)的符号,与被模数的符号一样,与模数(%右边的数)的符号无关。 char类型在参与运算时,则使用char对应对ASCII码表的值。

2. 赋值运算符

将常量、变量或表达式的值赋值给某一个变量。

运算符 运算 范例 结果
= 赋值 a=3;b=2; a=3;b=2;
+= 加等于 a=3;b=2;a+=b; a=5;b=2;
-= 减等于 a=3;b=2;a-=b; a=1;b=2;
*= 乘等于 a=3;b=2;a*=b; a=6;b=2;
/= 除等于 a=3;b=2;a/=b; a=1;b=2;
%= 模等于 a=3;b=2;a%=b; a=1;b=2;

注意:
1、在java中可以通过一条赋值语句对多个变量进行赋值。

  1. int x,y,z;
  2. x=y=z=5;//为3个变量同时赋值,可行
  3. // 下面代码则是错误代码
  4. int x=y=z=5;

2、在使用+=,-=,*=,/= 运算符进行赋值时,强制类型转换会自动完成。

  1. short s = 3;
  2. int i = 5;
  3. s += i; //可行的,s+i的值是int类型,会自动转为short类型
  4. // 下面代码是错误的
  5. s = s + i;
  6. // 这是正确的
  7. s = (short)(s+i);

3. 比较运算符

比较运算符是对两个数值或变量进行比较,其结果是一个布尔值。

运算符 运算 范例 结果
== 相等于 4 == 3 false
!= 不等于 4 != 3 true
< 小于 4 < 3 false
> 大于 4 > 3 true
<= 小于等于 4 <= 3 false
>= 大于等于 4 >= 3 true

注意:运算符之间不能加空格。

4逻辑运算符

逻辑运算符用于对布尔型的数据进行操作,结果仍是一个布尔型数据。
逻辑运算符.png

a & b a和b都为true,结果为true,否则为false
a && b a和b都为true,结果为true,否则为false
a | b a和b都为false,结果为false,否则为true
a || b a和b都为false,结果为false,否则为true
!a 结果和a的值相反
a ^ b a和b的结果不同为true,相同为false

**a & b****a && b**的区别:
在使用&运算时,不论左边为true或者false,右边的表达式都会进行运算。
使用&&运算时,当左边为false时,右边的表达式则不会进行运算。
**a | b****a || b**的区别:
在使用 | 运算时,不论左边为true或者false,右边的表达式都会进行运算。
使用 || 运算时,当左边为true时,右边的表达式则不会进行运算。

5. 三元(目)运算符

格式:关系表达式 ? 表达式1 : 表达式2;
格式解析:?前面是判断条件,结果为boolean型,为true时执行表达式1,否则执行表达式2。

  1. int a = 10;
  2. int b = 20;
  3. int c = a > b ? a : b; // 如果表式返回的是true ,把结果1返回 ,如果表达式返回的false, 把结果2返回
  4. // c的值为20

6. 运算符优先级

数字越小优先级越高
java运算符优先级.jpg