简单赋值运算符

您将遇到的最常见的运算符之一是简单的赋值运算符“=”。您在Bicycle类中看到了该运算符;它将右边的值赋给左边的操作数:

  1. int cadence = 0;
  2. int speed = 0;
  3. int gear = 1;

创建对象中所述,此运算符还可用于对象以分配对象引用(object references

算术运算符

Java编程语言提供了执行加法,减法,乘法和除法的运算符。您很有可能在基本数学中认识到了他们。对您而言,似乎唯一陌生的符号是“%”,该符号将一个操作数除以另一个,然后返回余数作为结果。

运算符 描述
+ 加法运算符(也用于字符串连接)
- 减法运算符
* 乘法运算符
/ 除法运算符
% 余数运算符

下面的程序 ArithmeticDemo测试算术运算符。

  1. class ArithmeticDemo {
  2. public static void main (String[] args) {
  3. int result = 1 + 2;
  4. // result is now 3
  5. System.out.println("1 + 2 = " + result);
  6. int original_result = result;
  7. result = result - 1;
  8. // result is now 2
  9. System.out.println(original_result + " - 1 = " + result);
  10. original_result = result;
  11. result = result * 2;
  12. // result is now 4
  13. System.out.println(original_result + " * 2 = " + result);
  14. original_result = result;
  15. result = result / 2;
  16. // result is now 2
  17. System.out.println(original_result + " / 2 = " + result);
  18. original_result = result;
  19. result = result + 8;
  20. // result is now 10
  21. System.out.println(original_result + " + 8 = " + result);
  22. original_result = result;
  23. result = result % 7;
  24. // result is now 3
  25. System.out.println(original_result + " % 7 = " + result);
  26. }
  27. }

该程序打印以下内容:

  1. 1 + 2 = 3
  2. 3 - 1 = 2
  3. 2 * 2 = 4
  4. 4 / 2 = 2
  5. 2 + 8 = 10
  6. 10 % 7 = 3

您还可以将算术运算符与简单的赋值运算符结合在一起以创建复合赋值(compound assignments。例如,x+=1;x=x+1;两个增量的值x都加1。
+运算符也可以用于将两个字符串连接(接合)在一起,如示于下述 ConcatDemo程序:

  1. class ConcatDemo {
  2. public static void main(String[] args){
  3. String firstString = "This is";
  4. String secondString = " a concatenated string.";
  5. String thirdString = firstString+secondString;
  6. System.out.println(thirdString);
  7. }
  8. }

在该程序结束时,变量thirdString包含“This is a concatenated string.”,该变量将输出到标准输出。

一元运算符

一元运算符只需要一个操作数;它们执行各种操作,例如将值增加/减少1,否定表达式或将布尔值取反。

运算符 描述
+ 一元加号运算符;表示正值(但是没有这个,数字为正)
- 一元减运算符;表达式取负
++ 增量运算符;将值增加1
-- 递减运算符;将值减1
! 逻辑补码运算符;反转布尔值

以下程序 UnaryDemo测试一元运算符:

  1. class UnaryDemo {
  2. public static void main(String[] args) {
  3. int result = +1;
  4. // result is now 1
  5. System.out.println(result);
  6. result--;
  7. // result is now 0
  8. System.out.println(result);
  9. result++;
  10. // result is now 1
  11. System.out.println(result);
  12. result = -result;
  13. // result is now -1
  14. System.out.println(result);
  15. boolean success = false;
  16. // false
  17. System.out.println(success);
  18. // true
  19. System.out.println(!success);
  20. }
  21. }

可以在操作数(前缀)之前或之后(后缀)应用增量/减量运算符。代码result++;++result;都将以result递增1结束。唯一的区别是前缀版本(++result)求值为增加的值,而后缀版本(result++)求值为原始值。如果您只是执行简单的增量/减量,则选择哪个版本都没有关系。但是,如果在较大表达式的一部分中使用此运算符,则选择的运算符可能会产生很大的不同。
以下程序 PrePostDemo说明了前缀/后缀一元增量运算符:

  1. class PrePostDemo {
  2. public static void main(String[] args){
  3. int i = 3;
  4. i++;
  5. // prints 4
  6. System.out.println(i);
  7. ++i;
  8. // prints 5
  9. System.out.println(i);
  10. // prints 6
  11. System.out.println(++i);
  12. // prints 6
  13. System.out.println(i++);
  14. // prints 7
  15. System.out.println(i);
  16. }
  17. }