这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战
作为一名测试人员,在进阶的过程中需要学习一些必备的开发知识,比如对于 Java 基础知识,Python 自动化知识等的了解。这些都是从功能测试进阶到测试开发的必要过程,更是成为测开的必备知识。
基本运算符
作为一门成熟的计算机开发语言,Java 提供了丰富的运算符来操作变量,根据运算符的操作功能,大致可以分为:
- 算术运算符
- 一元运算符
- 关系运算符
- 位运算符
- 逻辑运算符
- 赋值运算符
- 其他运算符
算术运算符
所谓算术运算符,就是完成数学中的加、减、乘、除等运算。因算术运算符是运算两个操作符,又可以称为二元运算符。常见的算术运算符有:
我们看一个简单的示例:
public class HelloWorld {
public static void main(String[] args) {
int x = 100;
int y = 20;
System.out.println("x + y = " + (x + y) );
System.out.println("x - y = " + (x - y) );
System.out.println("x * y = " + (x * y) );
System.out.println("x / y = " + (y / x) );
System.out.println("x % y = " + (y % x) );
}
}
一元运算符
一元运算符是指操作数只有一个的运算符,常见的有以下类型:
| 运算符 | 含义 |
|---|---|
| - | 取反,对数值进行取反 |
| ++ | 自增,对数值进行自动加 1 |
| -- | 自减,对数值自动减 1 |
| ~ | 对数值逐位取反 |
这里对于「++」自增运算符和「--」自减运算符需要注意,如果 ++ 在变量前面,则表示使用前自增,如果是在变量后面则表示使用后自增。比如对于 ++x 和 x++,在参与运算时得到的结果是不同的。同理 -- 自减运算符也是相同的含义。
针对介绍,我们看一个简单示例:
public class HelloWorld {
public static void main(String[] args) {
int x = 2;
System.out.println("++x =" + ++x);
System.out.println("x++ = " + x);
System.out.println("--x = " + --x);
System.out.println("x-- = " + x--);
System.out.println("~x =" +(~x));
System.out.println("-x =" +(-x));
}
}
输出的结果:
++x =3
x++ = 3
--x = 2
x-- = 2
~x =-2
-x =-1
关系运算符
Java 具有完备的关系运算符,这些关系运算符同数学中的关系运算符是一致的。常见的关系运算符示例如下:
| 运算符 | 描述 | 例子 |
|---|---|---|
| == | 判断两个操作数的值是否相等,如果相等则条件为真。 | (A == B)为假。 |
| != | 判断两个操作数的值是否相等,如果值不相等则条件为真。 | (A != B) 为真。 |
| > | 判断左操作数的值是否大于右操作数的值,如果是那么条件为真。 | (A> B)为假。 |
| < | 判断左操作数的值是否小于右操作数的值,如果是那么条件为真。 | (A <B)为真。 |
| >= | 判断左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 | (A> = B)为假。 |
| <= | 判断左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 | (A <= B)为真。 |
使用示例如下:
public class HelloWorld {
public static void main(String[] args) {
int x = 2;
int y = 5;
System.out.println("x > y " + (x > y));
System.out.println("x < y " + (x < y));
System.out.println("x == y " + (x == y));
System.out.println("x != y " + (x != y));
}
}
输出结果如下:
x > y false
x < y true
x == y false
x != y true
位运算符
Java 中定义了很多常用的位移运算符,用于操作二进制位。在实际使用时,可以很方便通过位移运算符来处理 int 类型的数值变换。常见的位移运算符有:
| 操作符 | 描述 | 例子 |
|---|---|---|
| & | 如果相对应位都是1,则结果为1,否则为0 | 如果 A = 0000,B=1100 则(A&B),得到12 |
| | | 如果相对应位都是 0,则结果为 0,否则为 1 | 如果A = 0011 B=1101,则(A | B)得到61 |
| 如果相对应位值相同,则结果为0,否则为1 | 如果A = 0011 B=0001 ,则(A ^ B)得到49 | |
| 〜 | 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 | 如果 A = 1100 则(〜A)得到3 |
| << | 按位左移运算符。左操作数按位左移右操作数指定的位数。 | 如果 即 A = 0010 A << 2得到8 |
| >> | 按位右移运算符。左操作数按位右移右操作数指定的位数。 | 如果 A = 1111,则 A >> 2得到3 |
| >>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 | 如果 A = 1111,则 A>>>2得到3 |
示例代码如下:
public class HelloWorld {
public static void main(String[] args) {
int x = 24;
int y = 2;
int z = 15;
System.out.println("~x = " + (~x));
System.out.println("y<<2 = " + (y<<2));
System.out.println("y>>2 = " + (y>>2));
System.out.println("z>>2 = " + (z>>2));
System.out.println("z>>>2 = " + (z>>>2));
}
}
输入结果:
~x = -25
y<<2 = 8
y>>2 = 0
z>>2 = 3
z>>>2 = 3
从上面可以看到,通过位运算符可以很方便的进行位运算,然后完成对应的操作数转换。
逻辑运算符
逻辑运算符的操作数都是布尔型表达式,最终计算的结果也是布尔类型,即为真或为假。 常见的逻辑运算符有:
| 操作符 | 描述 | 示例 |
|---|---|---|
| && | 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 | (X && Y)为真。 |
| || | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 | (X || Y)为真。 |
| ! | 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 | !(X && Y)为假。 |
下面我们写一个简单的示例使用:
public class HelloWorld {
public static void main(String[] args) {
boolean x = true;
boolean y = false;
System.out.println("x && y " + (x && y));
System.out.println("x || y = " + (x || y));
System.out.println("!x = " + (!x));
}
}
输出结果如下:
x && y false
x || y = true
!x = false
通常用于我们的逻辑判断,或者一些条件的语句判断。
赋值运算符
对于变量我们需要赋值处理,所以常见的赋值运算符有:=、+=、-= 等,下面我们简单看一下具体的含义。
| 操作符 | 描述 | |
|---|---|---|
| = | 将右操作数的值赋给左侧操作数 | C = A + B将把A + B得到的值赋给C |
| + = | 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 | C + = A等价于C = C + A |
| - = | 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 | C - = A等价于C = C - A |
| * = | 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 | C * = A等价于C = C * A |
| / = | 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 | C / = A,C 与 A 同类型时等价于 C = C / A |
| (%)= | 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 | C%= A等价于C = C%A |
| << = | 左移位赋值运算符 | C << = 2等价于C = C << 2 |
| >> = | 右移位赋值运算符 | C >> = 2等价于C = C >> 2 |
| &= | 按位与赋值运算符 | C&= 2等价于C = C&2 |
| ^ = | 按位异或赋值操作符 | C ^ = 2等价于C = C ^ 2 |
| |= | 按位或赋值操作符 |
下面介绍一个简单的示例:
public class HelloWorld {
public static void main(String[] args) {
int x = 10;
int y = 20;
int z;
System.out.println("z = x+ y " + (z = x+ y));
System.out.println("x += z " + (x += z));
}
}
输出结果如下:
z = x+ y 30
x += z 40
总结
Java 的运算符是很基础的知识,是我们开发 Java 程序必须掌握的基本运算,在实际项目开发中很实用,对于特定的运算业务,则必须掌握。