这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。
赋值、算术和一元操作符
最简单的赋值操作符
最常见的操作符就是赋值操作符。它将等式右边的值赋值给等式左边的变量。
int cadence = 0;
int speed = 0;
int gear = 1;
该操作符也可以把对象赋值给对象引用。
算术运算符
Java编程语言提供了加、减、乘、除运算符。这些运算符在基础数学中你已经学过。唯一感到陌生的是“%”这个操作符,它将一个操作数除以另一个操作数,并返回其结果的余数。
操作符 | 描述 |
---|---|
+ | 加法操作符(也可以用在字符串拼接) |
- | 减法操作符 |
* | 乘法操作符 |
/ | 除法操作符 |
% | 余数操作符 |
下面的示例代码演示了算术操作符的使用
public class ArithmeticDemo {
public static void main(String[] args){
int result = 1+2;
System.out.println("1 + 2 = " + result);
int original_result = result;
result = result - 1;
System.out.println(original_result +" - 1 = " + result);
original_result = result;
result = result * 2;
System.out.println(original_result +" * 2 = " + result );
original_result = result;
result = result / 2;
System.out.println(original_result +" / 2 = " +result);
original_result = result;
result = result + 8;
System.out.println(original_result +" + 8 = " +result);
original_result = result;
result = result % 7;
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
你可以通过对简单操作符进行组合来创建组合操作符,比如:x+=1和x=x+1,都是对x加1。
“+” 操作符也可以用来拼接字符串,如下文所示:
public 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.”,并打印到标准输出。
一元操作符
一元操作符只需要一个操作数,它完成如下这些操作:自增、自减、否定表达式、boolean值取反等等。
操作符 | 说明 |
---|---|
+ | 加号操作符,表示正数 |
- | 减号操作符,表示负数 |
++ | 自增操作符,操作数+1 |
– | 自减操作符,操作数-1 |
! | 取反操作符,逻辑操作数取反 |
如下示例演示了一元操作符的操作:
public class UnaryDemo {
public static void main(String[] args){
int result = +1;
System.out.println(result);
result--;
System.out.println(result);
result++;
System.out.println(result);
result = -result;
System.out.println(result);
boolean success = false;
System.out.println(success);
System.out.println(!success);
}
}
自增/自减操作符可以位于操作数的前面或者后面。不管是result++,还是++result,对于result变量来说都会自增1。唯一不同的是对于前缀(++result)来说表达式返回的是自增后的结果,后缀(result++)来说表达式返回的是自增前的结果。如果你仅仅只是想完成result变量的自增,不用太在乎到底是前缀++还是后缀++。但是当你在一个大表达式里面使用这个操作符,选择前缀还是后缀++操作符的结果就会有很大的不同。
下面的代码示例,演示了前缀和后缀一元操作符:
public class PrePostDemo {
public static void main(String[] args){
int i = 3;
i++;
// 打印4
System.out.println(i);
++i;
// 打印5
System.out.println(i);
//打印6
System.out.println(++i);
//打印6
System.out.println(i++);
//打印7
System.out.println(i);
}
}