Java中的运算符是一些特殊的符号,主要用于数学函数,一些类型的赋值语句和逻辑语句方面。
- 赋值运算符
赋值运算符是以“=”来表示,他是一个二元运算符(对两个操作数进行处理),发的作用是将右边的操作数所含的数值赋给左边的操作数。
例如: int a = 10; (将10赋给a)
如果遇到变量之间的计算的情况,则先进行计算,在赋值
例如: int a = 10;
int b = 20;
Int c = a + b;
首先系统会计算a+b的值,再将a+b的值赋给 c
注意:由于赋值运算符“=”会处理右边表达式运算后的结果,所以如果遇到一个表达式中含有两个或以上的的“=”,则从最右边开始处理。
- 算术运算符
Java中的算术运算符主要是 加(+),减(-),乘(*),除(/),取余(%),他们都是二元运算符,例外“+”,“-”还可以做位数值的正负号,但是要注意,在做除法运算时,0不能做除数,如 : int a = 5/0;否则会报错:ArithmeticException异常。
- 自增自减运算符
自增,自减运算符是单目运算符,可以放在操作数之前,也可以放在其之后。操作数必须是一个整型或者浮点型变量,他的作用是:是变量的值增1或者减1.如果放在操作数之前,则先进性运算,在赋值;如果放在操作数之后,则先赋值,在运算。例如:
- 比较运算符
比较运算符是二元运算符,他主要是用于程序中变量之间,变量和自变量之间以及其他类型信息之间的比较。运算结果是boolean型(true或false),如表:
运算符 | 作用 | 举例 | 操作数据型 | 结果 |
> | 比较左方是否大于右方 | a>b | 整型,浮点型,字符型 | true或false |
< | 比较左方是否小于右方 | a<b | 整型,浮点型,字符型 | true或false |
== | 比较左方是否等于右方 | a==b | 整型,浮点型,字符型 | true或false |
>= | 比较左方是否大于等于右方 | a>=b | 整型,浮点型,字符型 | true或false |
<= | 比较左方是否小于等于右方 | a<=b | 整型,浮点型,字符型 | true或false |
!= | 比较左方是否不等于右方 | a!=b | 基本数据类型,引用数据类型 | true或false |
- 逻辑运算符
逻辑运算符的返回类型为布尔值的表达式,如将比较运算符组合起来构成一个更复杂的表达式,这就是通过逻辑运算符来实现的。
逻辑运算符包括 与(&,&&), 或(|,||), 非(!)
逻辑运算符进行逻辑运算表
首先 设 boolean a = 表达式1; boolean b = 表达式2;
a | b | a&b | a&&b | a|b | a||b | !a |
true | true | true | true | true | true | false |
true | false | false | false | true | true | false |
false | false | false | false | false | false | true |
false | true | false | false | true | true | true |
& 和 && 的区别?
&和&&的运算结果相同,但是运算过程不同。 &是不管左边表达式的结果如何,都会执行右边表达式;而&&则是,当左边表达式为false时,不再执行右边表达式,而是直接输出结果。通常将逻辑表达式中这样从左边表达式来推断出整个表达式值的运算称”短路”,而那些始终执行运算符两边表达式的运算称为”非短路”; &是非短路运算符,&&是短路运算符。
| 和 || 的区别?
| 和 || 的运算结果相同,但运算过程不同。 |是不管左边表达式结果如何,都会执行右边表达式; 而||则是,当左边表达式为true时,则不再执行右边表达式,而是直接输出结果。
- 位运算符
位运算符是完全针对位方面的操作,也就是说将数值以二进制数来表示,最高位是符号位,0代表正数,1代表负数。
- “按位与”运算
“按位与”运算的运算符为“&”,双目运算符,运算法则为:如果两个整数数据a,b对应位都是1,则结果位才是1,否则为0.如果操作数的精度不同,则结果的精度与操作数高的精度相同。
- “按位或”运算
“按位与”运算的运算符位|, 是双目运算符,其运算法则为:如果两个操作数的对应为都为0,其结果位才为0,否则为1.如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。
- “按位取反”运算
“按位取反”也称为按位非,符号为 ~ ,就是将操作数的二进制数中的1改为0,0改为1.
- “按位异或”运算
“按位异或”运算的的运算符“^”,为双目运算符,其运算法则为:当两个操作数的对应为都是0或者都是1时,其结果位为0,否则为1;如果两个操作数的精度不同,则结果数与最高精度的操作数的精度相同。
- “移位操作”
<< 左移。
>> 右移。
>>> 无符号右移位。
移位运算符适合的数据类型有:byte,short,int , long, char。
- 三元运算符
三元运算符的使用格式
条件表达式?值1:值2
例如: boolean a = 20>32?true:false;
首先看条件表达式的结果是false,则将值2赋给变量a。
三元表达式相当于if...else..
Boolean a;
If(20>32){
a = true;
}else{
a = false;
}
- 运算符的优先级
Java中的表达式就是使用运算符连接起来的符合Java规则的式子,运算符的优先级就是决定表达式中执行的先后顺序。通常优先级由高到低的顺序是: 自增自减运算符 -- 算术运算符--- 比较运算符 --- 逻辑运算符 --- 赋值运算符
如果两个表达式有相同的优先级,则左边的表达式比右边的先处理。
运算符的优先级
优先级 | 描述 | 运算符 |
1 | 括号 | () |
2 | 正负号 | +,- |
3 | 一元运算符 | ++,--,! |
4 | 乘除 | *,/,% |
5 | 加减 | +,- |
6 | 移位运算 | <<, >>, >>> |
7 | 比较运算 | <, > , >=, =< |
8 | 比较是否相等 | ==,!= |
9 | 按位与运算 | & |
10 | 按位异或运算 | ^ |
11 | 按位或运算 | | |
12 | 逻辑与运算 | && |
13 | 逻辑或运算 | || |
14 | 三元运算符 | ?: |
15 | 赋值运算符 | = |