Java 基础——运算符

123 阅读5分钟

这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战

作为一名测试人员,在进阶的过程中需要学习一些必备的开发知识,比如对于 Java 基础知识,Python 自动化知识等的了解。这些都是从功能测试进阶到测试开发的必要过程,更是成为测开的必备知识。

基本运算符

作为一门成熟的计算机开发语言,Java 提供了丰富的运算符来操作变量,根据运算符的操作功能,大致可以分为:

  • 算术运算符
  • 一元运算符
  • 关系运算符
  • 位运算符
  • 逻辑运算符
  • 赋值运算符
  • 其他运算符

算术运算符

所谓算术运算符,就是完成数学中的加、减、乘、除等运算。因算术运算符是运算两个操作符,又可以称为二元运算符。常见的算术运算符有:

image.png

我们看一个简单的示例:

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 程序必须掌握的基本运算,在实际项目开发中很实用,对于特定的运算业务,则必须掌握。