操作符
countChars方法使用了几种操作符,包括=、!=、++和+:
import java.io.*;
public class Count {
public static void countChars(Reader in)
throws IOException
{
int count = 0;
while (in.read() != -1)
count++;
System.out.println("Counted " +
count + " chars.");
}
// ... main method omitted ...
}
操作符可以在一个、两个或三个操作数上执行一定的功能。要
求一个操作数的操作符称为一元操作符。例如,++是使操作数加
1的一元操作符。需要两个操作数的操作符称为二元操作符。
如,=是一个从右到左赋值的二元操作符。三元操作符是需要三
个操作数的操作符。Java语言只有一个三元操作符 - ?:,是if-else
的缩写。
Java的一元操作符可以用前缀或后缀。前缀如下所示:
operator op
后缀如下所示:
op operator
二元操作符在两个操作数中间:
op1 operator op2
三元操作符的用法如下:
expr ? op1 : op2
除了执行操作,操作符也返回值。返回值和它的类型取决于操
作符和它的操作数的类型。例如,算术操作符返回算术运算的
结果。算术操作符的返回结果数据类型依赖于它的操作数的
类型:如果把两个整数相加,结果是整数。
Java的操作符可以分为以下几类:
算术操作符
Java语言支持所有浮点数和整数的各种算术运算,包括+、-、
*、/,%为取余操作符。下表为一元操作符:
| 操作符 |
用法 |
描述 |
| + |
op1 + op2 |
把op1和op2 相加 |
| - |
op1 - op2 |
从op1减去op2 |
| * |
op1 * op2 |
op1乘以op2 |
| / |
op1 / op2 |
op1除以op2 |
| % |
op1 % op2 |
op1被op2除的余 |
+和-也可以作为一元操作符:
| 操作符 |
用法 |
描述 |
| + |
+op |
如果是byte、short或char,就提升为int |
| - |
-op |
取负值 |
++和--的用法如下:
| 操作符 |
用法 |
描述 |
| ++ |
op++ |
给op加1,在加1前赋值 |
| ++ |
++op |
给op加1,在加1后赋值 |
| -- |
op-- |
给op减1,在减1前赋值 |
| -- |
--op |
给op减1,在减1后赋值 |
关系和条件操作符
关系操作符:
| 操作符 |
用法 |
返回真,如果... |
| > |
op1 > op2 |
op1 大于op2 |
| >= |
op1 >= op2 |
op1大于或等于op2 |
| < |
op1 < op2 |
op1 小于 op2 |
| <= |
op1 <= op2 |
op1 小于或等于 op2 |
| == |
op1 == op2 |
op1 等于op2 |
| != |
op1 != op2 |
op1 不等于op2 |
条件操作符:
| 操作符 |
用法 |
返回真,如果... |
| && |
op1 && op2 |
op1和op2 都是真,条件性的取op2的值 |
| || |
op1 || op2 |
op1或op2为真,条件性的取op2的值 |
| ! |
! op |
op 为假 |
| & |
op1 & op2 |
op1和op2 都是真,取op1和op2 的值 |
| | |
op1 | op2 |
op1或op2为真,取op1和op2 的值 |
移位操作符
| 操作符 |
用法 |
操作 |
| >> |
op1 >> op2 |
右移op1 op2位 |
| << |
op1 << op2 |
左移op1 op2位 |
| >>> |
op1 >>> op2 |
右移op1 op2位 (无符号移位) |
| & |
op1 & op2 |
位与 |
| | |
op1 | op2 |
位或 |
| ^ |
op1 ^ op2 |
位异或 |
| ~ |
~op2 |
位余 |
赋值操作符
| 操作符 |
用法 |
等价于 |
| += |
op1 += op2 |
op1 = op1 + op2 |
| -= |
op1 -= op2 |
op1 = op1 - op2 |
| *= |
op1 *= op2 |
op1 = op1 * op2 |
| /= |
op1 /= op2 |
op1 = op1 / op2 |
| %= |
op1 %= op2 |
op1 = op1 % op2 |
| &= |
op1 &= op2 |
op1 = op1 & op2 |
| |= |
op1 |= op2 |
op1 = op1 | op2 |
| ^= |
op1 ^= op2 |
op1 = op1 ^ op2 |
| <<= |
op1 <<= op2 |
op1 = op1 << op2 |
| >>= |
op1 >>= op2 |
op1 = op1 >> op2 |
| >>>= |
op1 >>>= op2 |
op1 = op1 >>> op2 |