Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
你将遇到的最常见的运算符之一是简单赋值运算符 "=
"。你在 Bicycle 类中看到了这个运算符;它将右边的值赋给左边的操作数:
int cadence = 0; int speed = 0; int gear = 1;
如 Creating Objects 中所述,此运算符也可用于对象以分配 object references (对象引用)。
Java 编程语言提供了执行加法,减法,乘法和除法的运算符。很有可能你会在基础数学中认识他们。唯一可能看起来很新的符号是 "%
",它将一个操作数除以另一个操作数,并返回余数作为结果。
运算符 | 描述 |
---|---|
+ | 加法运算符(也用于字符串连接) |
- | 减法运算符 |
* | 乘法运算符 |
/ | 除法运算符 |
% | 求余运算符 |
以下程序 ArithmeticDemo
测试算术运算符。
class ArithmeticDemo { public static void main (String[] args) { int result = 1 + 2; // result is now 3 System.out.println("1 + 2 = " + result); int original_result = result; result = result - 1; // result is now 2 System.out.println(original_result + " - 1 = " + result); original_result = result; result = result * 2; // result is now 4 System.out.println(original_result + " * 2 = " + result); original_result = result; result = result / 2; // result is now 2 System.out.println(original_result + " / 2 = " + result); original_result = result; result = result + 8; // result is now 10 System.out.println(original_result + " + 8 = " + result); original_result = result; result = result % 7; // result is now 3 System.out.println(original_result + " % 7 = " + result); } }
该程序打印以下内容:
1 + 2 = 3 3 - 1 = 2 2 * 2 = 4 4 / 2 = 2 2 + 8 = 10 10 % 7 = 3
你还可以将算术运算符与简单赋值运算符组合以创建 compound assignments (复合赋值)。例如,x+=1;
和 x=x+1;
都会将 x
的值递增 1。
+
运算符也可用于串连(连接)两个字符串,如下面的 ConcatDemo
程序所示:
class ConcatDemo { public static void main(String[] args){ String firstString = "This is"; String secondString = " a concatenated string."; String thirdString = firstString+secondString; System.out.println(thirdString); } }
在该程序结束时,变量 thirdString
包含 "This is a concatenated string。",它被打印到标准输出。
一元运算符只需要一个操作数;它们执行各种操作,例如将值递增/递减 1,否定表达式或反转布尔值。
运算符 | 描述 |
---|---|
+ | 一元加运算符;表示正值(但是,如果没有这个符号数字也是正数) |
- | 一元减运算符;对表达式求反 |
++ | 递增运算符;将值加 1 |
-- | 递减运算符;将值减 1 |
! | 逻辑非运算符;反转布尔值 |
以下程序 UnaryDemo
测试一元运算符:
class UnaryDemo { public static void main(String[] args) { int result = +1; // result is now 1 System.out.println(result); result--; // result is now 0 System.out.println(result); result++; // result is now 1 System.out.println(result); result = -result; // result is now -1 System.out.println(result); boolean success = false; // false System.out.println(success); // true System.out.println(!success); } }
递增/递减运算符可以在操作数之前(前缀)或之后(后缀)应用。代码 result++;
和 ++result;
结束时 result
都将加 1。唯一的区别是前缀版本(++result
)计算为递增值,而后缀版本(result++
)计算为原始值。如果你只是执行简单的递增/递减操作,则选择哪个版本无关紧要。但是如果你在更大的表达式中使用这个运算符,那么你选择的运算符可能会有很大的不同。
以下程序 PrePostDemo
演示了前缀/后缀一元递增运算符:
class PrePostDemo { public static void main(String[] args){ int i = 3; i++; // prints 4 System.out.println(i); ++i; // prints 5 System.out.println(i); // prints 6 System.out.println(++i); // prints 6 System.out.println(i++); // prints 7 System.out.println(i); } }