Java基础语法(运算符与表达式)
1. 算术运算符
在Java中,算术运算符用于执行基本的数学运算。以下是Java中常用的算术运算符:
| 运算符 | 描述 | 例子 | 结果 |
| --- | --- | --- | --- |
| `+` | 加法 | `5 + 3` | 8 |
| `-` | 减法 | `5 - 3` | 2 |
| `*` | 乘法 | `5 * 3` | 15 |
| `/` | 除法 | `5 / 3` | 1 |
| `%` | 取模(求余) | `5 % 3` | 2 |
public class ArithmeticOperators {public static void main(String[] args) {int a = 10;int b = 5;int c = a + b;int d = a - b;int e = a * b;int f = a / b;int g = a % b;System.out.println("10 + 5 = " + c);System.out.println("10 - 5 = " + d);System.out.println("10 * 5 = " + e);System.out.println("10 / 5 = " + f);System.out.println("10 % 5 = " + g);}
}
2. 比较运算符
比较运算符用于比较两个值,并根据比较结果返回`true`或`false`。
| 运算符 | 描述 | 例子 | 结果 |
| --- | --- | --- | --- |
| `==` | 等于 | `5 == 3` | false |
| `!=` | 不等于 | `5 != 3` | true |
| `>` | 大于 | `5 > 3` | true |
| `<` | 小于 | `5 < 3` | false |
| `>=` | 大于等于 | `5 >= 3` | true |
| `<=` | 小于等于 | `5 <= 3` | false |
public class ComparisonOperators {public static void main(String[] args) {int a = 10;int b = 5;System.out.println("10 == 5 ? " + (a == b));System.out.println("10 != 5 ? " + (a != b));System.out.println("10 > 5 ? " + (a > b));System.out.println("10 < 5 ? " + (a < b));System.out.println("10 >= 5 ? " + (a >= b));System.out.println("10 <= 5 ? " + (a <= b));}
}
3. 逻辑运算符
逻辑运算符用于根据两个布尔值(`true`或`false`)的真假性来决定最终的布尔值。
| 运算符 | 描述 | 例子 | 结果 |
| --- | --- | --- | --- |
| `&&` | 逻辑与 | `true && false` | false |
| `||` | 逻辑或 | `true || false` | true |
| `!` | 逻辑非 | `!true` | false |
public class LogicalOperators {public static void main(String[] args) {boolean a = true;boolean b = false;System.out.println("true && false ? " + (a && b));System.out.println("true || false ? " + (a || b));System.out.println("!true ? " + (!a));}
}
4. 位运算符
位运算符对整数的二进制位进行操作。
| 运算符 | 描述 | 例子 | 结果 |
| --- | --- | --- | --- |
| `&` | 位与 | `5 & 3`(二进制:101 & 011) | 1 |
| `|` | 位或 | `5 | 3`(二进制:101 | 011) | 7 |
| `^` | 位异或 | `5 ^ 3`(二进制:101 ^ 011) | 6 |
| `~` | 位非 | `~5`(二进制:~101) | -6 |
| `<<` | 左移 | `5 << 1`(二进制:101 << 1) | 10 |
| `>>` | 右移 | `5 >> 1`(二进制:101 >> 1) | 2 |
| `>>>`| 无符号右移 | `5 >>> 1`(二进制:101 >>> 1) | 2 |
public class BitwiseOperators {public static void main(String[] args) {int a = 5;int b = 3;System.out.println("5 & 3 = " + (a & b));System.out.println("5 | 3 = " + (a | b));System.out.println("5 ^ 3 = " + (a ^ b));System.out.println("~5 = " + (~a));System.out.println("5 << 1 = " + (a << 1));System.out.println("5 >> 1 = " + (a >> 1));System.out.println("5 >>> 1 = " + (a >>> 1));}
}
```
5. 三元运算符
三元运算符是一种简洁的if-else语句,格式为:`条件 ? 表达式1 : 表达式2`。
public class TernaryOperator {public static void main(String[] args) {int a = 10;int b = 20;int max = (a > b) ? a : b;System.out.println("Max value is " + max);}
}
6. 字符串运算符
字符串运算符用于连接两个字符串。
| 运算符 | 描述 | 例子 | 结果 |
| --- | --- | --- | --- |
| `+` | 字符串连接 | `"Hello, " + "World!"` | Hello, World! |
public class StringOperators {public static void main(String[] args) {String str1 = "Hello, ";String str2 = "World!";String str3 = str1 + str2;System.out.println(str3);}
}
7. 表达式求值与优先级
在Java中,表达式是由运算符和操作数组成的组合,可以产生一个值。表达式的求值遵循特定的优先级规则,即运算符优先级。
以下是Java中的运算符优先级(从高到低):
1. 后缀运算符:`()`、`[]`、`.`、`++`、`--`
2. 一元运算符:`++`、`--`、`+`、`-`、`~`、`!`
3. 乘法和除法:`*`、`/`、`%`
4. 加法和减法:`+`、`-`
5. 位移运算符:`<<`、`>>`、`>>>`
6. 关系运算符:`<`、`>`、`<=`、`>=`、`instanceof`
7. 相等性运算符:`==`、`!=`
8. 位与运算符:`&`
9. 位异或运算符:`^`
10. 位或运算符:`|`
11. 逻辑与运算符:`&&`
12. 逻辑或运算符:`||`
13. 条件运算符:`? :`
14. 赋值运算符:`=`、`+=`、`-=`、`*=`、`/=`、`%=`、`&=`、`^=`、`|=`、`<<=`、`>>=`、`>>>=`
public class ExpressionEvaluation {public static void main(String[] args) {int a = 10;int b = 20;int c = 30;// 根据优先级,先计算乘法,然后加法int result = a + b * c;System.out.println("Result: " + result);// 使用括号改变优先级int result2 = a + (b * c);System.out.println("Result with parentheses: " + result2);}
}