特别声明:如下内容均来自于不同网络课程视频或书籍,整理合并完成。 如果有整理错误,忘及时指出,共同进步,不胜感激。
Java 入门之运算符
Java 运算符 (Operator)
1. 赋值运算符 (Assignment Operators)
整数类型:顾名思义,将值赋予给一个变量,例如将 5 赋值给 int 型变量x。 即 x = 5; 等号右边 的值给等号左边的变量。
2. 一元运算符 (Monadic Operators)
一般来讲,运算符左右都有操作数,例如 a + b,我们称 a,b 为操作数。但java中还存在一种情
况,运算符只有一个操作数。例如 -1; 表示负3。
3. 算数运算符 (Arithmetic Operators)
加减乘除。 例如: a + b
4. 关系运算符 (Relational Operators)
等于,不等于,大于,小于,大于等于,小于等于。 例如: a >= 7;
5. 逻辑运算符 (Logical Operators)
或(&& / &),与(|| / |),非(!)。 例如: a && b。 通常我们使用 &&,|| 这两种形式。 区别:
public static void main(String[] args) {
int a = 10;
int b = 0;
if(a > 0 || (a/0) > 2)
{
System.out.print("Hello World");
}
}
output: Hello World
public static void main(String[] args) {
int a = 10;
int b = 0;
if(a > 0 | (a/0) > 2)
{
System.out.print("Hello World");
}
}
output:
Exception in thread "main" java.lang.ArithmeticException: / by zero
众所周知 0 不能做分母,所以 a/0 是不成立的,但使用 || 时并没有报错,因为计算机执行该语
句时,发现第一个条件a>0 已经正确,或运算要求至少一 个满足条件即可。 但使用 | 时,程序
异常报错,因为 | 判断完第一个条件后,继续判断第二条。因此从这种角度来说 || 提高了程序的
效率。
6. 三元运算符 (ternary Operators)
可以理解为 if…else的快捷方式。
例如:
public static void main(String[] args) {
int a = 3;
int b = 4;
if(a > b)
{
System.out.print(" a > b");
}
else
{
System.out.print(" a < b");
}
}
output: a < b
public static void main(String[] args) {
int a = 3;
int b = 4;
String result;
result = (a > b) ? "a > b":"a < b";
System.out.print(result);
}
output: a < b
这两段代运算的内容一样,但是第二段代码更简练一些。 以第二段代码为例, 我们比较 a,b 如
何为真则 result的字符串内容为问号后第一个,如果为假,则将冒号后内容赋值给result。 三元
运算符局限性在于 只能 比较两个操作数。
6. 位运算符 (Bitwise Operators)
因为计算机只能识别 0 与 1. 因此在java中,数据都是以二进制(0 或 1)的形式存在。 例如:
public static void main(String[] args) {
int b = 6;
System.out.println(Integer.toBinaryString(b));
}
output: 110
这里我们将 int 型的变量 b 转化为二进制数。 因为int型数据长度为 32 位,所有得到如下内
容:
00000000 00000000 00000000 00000110 从左到右计算 0 * 2^0+1 * 2^1+1 * 2 ^2 = 2 +
4 = 6
位运算结果表
| Number A | Number B | (&) | (|) | (^) |
|----------|----------|-----------|---------|---------|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
(&): 操作数全部为 1 则结果为 1, 否则值为 0
(|): 操作数至少有一个值为 1 则结果为 1, 否则值为 0
(^): 操作数值全部相同 则结果为 0, 否则值为 1
7. 运算符优先级 (Precedence of Java Operators)
换句话说,运算顺序高低,比如在数学书中,乘法,除法 并列 且 高于加减法。但我们加入()时
就可以改变运算顺序。 例如:
public static void main(String[] args) {
int a = 1;
int b = 2;
int c = 3;
int d1 = a+b*c;
int d2 = (a+b)*c;
System.out.print("d1 = "+d1+","+"d2= "+d2);
}
output:d1 = 7,d2= 9
因此不难看出,括号运算符的优先级大于乘除法运算符。下面连接为具体的优先级顺序表

未完待续。。。
更新时间 每周一,三,五,日。