前言

上一篇文章 中介绍了 Java 变量和数据类型,那么如何对他们进行运行算呢?这一节就来看看 Java 中的运算!

本文次要内容:

  • 算术运算符
  • 关系运算符
  • 位运算符
  • 逻辑运算符
  • 赋值运算符
  • 条件运算符

好了,话不多说,开始正式内容吧!

算术运算符

常见的算术运算符次要有下表中的几种,次要是针对整型和浮点类型的运算。

操作符形容
+加法 - 相加运算符两侧的值
-减法 - 左操作数减去右操作数
*乘法 - 相乘操作符两侧的值
/除法 - 左操作数除以右操作数
取余 - 左操作数除以右操作数的余数
++自增: 操作数的值减少1
--自减: 操作数的值缩小1

留神++-- 能够放在操作数之前,也能够放在操作数之后;位于操作数之前时,先自增/减,再赋值;位于操作数之后,先赋值,再自增/减;总结起来就是 符号在前就先加/减,符号在后就后加/减

以下是局部算术运算符的示例以及运行后果:

/** * @author : cunyu * @version : 1.0 * @className : Main * @date : 2021/4/15 9:43 * @description : 算术运算符演示 */public class Main {    public static void main(String[] args) {        int num1 = 10;        int num2 = 20;        int num3 = 30;        int num4 = 40;        System.out.println("num1 + num2 = " + (num1 + num2));        System.out.println("num1 - num2 = " + (num1 - num2));        System.out.println("num1 * num2 = " + (num1 * num2));        System.out.println("num2 / num1 = " + (num2 / num1));        System.out.println("num2 % num1 = " + (num2 % num1));        System.out.println("num3 % num1 = " + (num3 % num1));        System.out.println("num1++   = " + (num1++));        System.out.println("num1--   = " + (num1--));        // 查看 ++ 在操作数前后地位时后果的不同        System.out.println("num4++   = " + (num4++));        System.out.println("++num4   = " + (++num4));    }}

关系运算符

关系运算符次要是指两个数据间的关系,两者之间的比拟后果用逻辑值来示意,罕用来比拟判断两个变量或常量的大小。常见的关系运算符及含意如下表:

运算符形容
==查看如果两个操作数的值是否相等,如果相等则条件为真
!=查看如果两个操作数的值是否相等,如果值不相等则条件为真
>查看左操作数的值是否大于右操作数的值,如果是那么条件为真
<查看左操作数的值是否小于右操作数的值,如果是那么条件为真
>=查看左操作数的值是否大于或等于右操作数的值,如果是那么条件为真
<=查看左操作数的值是否小于或等于右操作数的值,如果是那么条件为真

以下是局部关系运算符的示例以及运行后果:

/** * @author : cunyu * @version : 1.0 * @className : Main * @date : 2021/4/15 9:45 * @description : 关系运算符 */public class Main {    public static void main(String[] args) {        int num1 = 100;        int num2 = 220;        System.out.println("num1 == num2 = " + (num1 == num2));        System.out.println("num1 != num2 = " + (num1 != num2));        System.out.println("num1 > num2 = " + (num1 > num2));        System.out.println("num2 < num1 = " + (num2 < num1));        System.out.println("num2 <= num1 = " + (num2 <= num1));        System.out.println("num2 >= num1 = " + (num2 >= num1));    }}

位运算符

位运算符次要用来对操作数二进制的位进行运算,其运算后果是整型的。常见的位运算符及性能形容如下表所示:

操作符形容
如果绝对应位都是 1,则后果为 1,否则为 0
``如果绝对应位都是 0,则后果为 0,否则为 1
^如果绝对应位值雷同,则后果为 0,否则为 1
按位取反运算符翻转操作数的每一位,即 0 变成 1,1 变成 0
<<按位左移运算符。左操作数按位左移右操作数指定的位数
>>按位右移运算符。左操作数按位右移右操作数指定的位数
>>>按位右移补零操作符。左操作数的值按右操作数指定的位数右移,挪动失去的空位以零填充

以下是局部位运算符的示例以及运行后果:

/** * @author : cunyu * @version : 1.0 * @className : Main * @date : 2021/4/15 10:02 * @description : 位运算符 */public class Main {    public static void main(String[] args) {        int num1 = 10;        int num2 = 20;        System.out.println("num1 & num2 = " + (num1 & num2));        System.out.println("num1 | num2 = " + (num1 | num2));        System.out.println("num1 ^ num2 = " + (num1 ^ num2));        System.out.println("~ num2 = " + (~num2));        System.out.println("num1 << 2 = " + (num1 << 2));        System.out.println("num1 >> 2 = " + (num1 >> 2));        System.out.println("num1 >>> 2 = " + (num1 >>> 2));    }}

逻辑运算符

逻辑运算符通过将关系表达式连接起来,从而组成一个简单的逻辑表达式,从而判断程序中的表达式是否成立,其后果返回 truefalse

操作符形容
&&称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真
``称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真
!称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为 true,则逻辑非运算符将失去 false

以下是逻辑运算符的示例以及运行后果:

/** * @author : cunyu * @version : 1.0 * @className : Main * @date : 2021/4/15 10:07 * @description : 逻辑运算符 */public class Main {    public static void main(String[] args) {        boolean positive = true;        boolean negative = false;        System.out.println("positive && negative = " + (positive && negative));        System.out.println("positive || negative = " + (positive || negative));        System.out.println("!(positive || negative) = " + !(positive || negative));    }}

赋值运算符

赋值运算符示意一个动作,将其右侧的值送到左侧的变量中。常见的赋值运算符及含意如下表所示:

操作符形容
=简略的赋值运算符,将右操作数的值赋给左侧操作数
+=加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数
-=减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数
*=乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数
/=除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数
%=取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数
<< =左移位赋值运算符
>>=右移位赋值运算符
&=按位与赋值运算符
^=按位异或赋值操作符
`=`按位或赋值操作符

以下是局部赋值运算符的示例以及运行后果:

/** * @author : cunyu * @version : 1.0 * @className : Main * @date : 2021/4/15 10:13 * @description : 赋值运算符 */public class Main {    public static void main(String[] args) {        int num1 = 100;        int num2 = 1000;        System.out.println("num1 + num2 = " + (num1 + num2));        System.out.println("num1 += num2 = " + (num1 += num2));        System.out.println("num1 - num2 = " + (num1 - num2));        System.out.println("num1 -= num2 = " + (num1 -= num2));        System.out.println("num1 * num2 = " + (num1 * num2));        System.out.println("num1 *= num2 = " + (num1 *= num2));        System.out.println("num1 & num2 = " + (num1 & num2));        System.out.println("num1 &= num2 = " + (num1 &= num2));    }}

条件运算符(? :)

也叫作三元运算符,共有 3 个操作数,且须要判断布尔表达式的值,罕用来取代某个 if-else 语句。其语法结构如下所示:

variable x = (expression) ? value if true : value if false

以下是条件运算符的示例以及运行后果:

/** * @author : cunyu * @version : 1.0 * @className : Main * @date : 2021/4/15 10:18 * @description : 条件运算符 */public class Main {    public static void main(String[] args) {        int num1 = 30;        int num2 = 300;        int result = num1 > num2 ? num1 : num2;        System.out.println("The max between num1 and num2 is " + result);    }}

instanceof

用于操作对象实例,查看该对象是否是一个特定类型(类类型或接口类型),其语法结构如下。该知识点波及到类与对象,此处就不做开展,等到后边学习类与对象之后,就能了解了。

( Object reference variable ) instanceof  (class/interface type)

equals() 和 ==

  • ==

根本数据类型用 == 比拟的是值,而 用于援用数据类型时判断两个对象的内存地址是否相等,即两对象是否是同一个对象;

实质来讲,因为 Java 中只有值传递,所以不论是根本数据类型还是援用数据类型,比拟的其实都是值,只不过援用类型变量存的值是对象的地址;
  • equals()

作用也是判断两个对象是否相等,然而 不能用于根本数据类型变量的比拟。存在于 Object() 类中,所以所有类都具备 equals() 办法存在两种应用状况:

  1. 类未笼罩 equals() 办法:此时通过 equals() 比拟该类的两个对象时,等价于 == 比拟这两个对象,默认应用 Object 类中的 equals() 办法;
  2. 类笼罩了 equals() 办法:一旦笼罩了该办法,则用来比拟两个对象的内容是否相等,如咱们罕用的 String、BitSet、Data、File 就笼罩了 equals() 办法;
/** * @author : cunyu * @version : 1.0 * @className : Main * @date : 2021/4/15 13:26 * @description : == 和 equals 用法 */public class Main {    public static void main(String[] args) {        int num1 = 10;        int num2 = 10;        int num3 = 20;        String str1 = "村雨遥";        String str2 = new String("村雨遥");        // == 用于根本数据类型,用于比拟两者是否相等        System.out.println("num1 == num2:" + (num1 == num2)); // true        System.out.println("num3 == num3:" + (num2 == num3)); // false        // 而用于援用类型则示意两者是否指向同一对象        System.out.println("str1 == str2:" + (str1 == str2)); // false        // equals 用于比拟援用类型是否内容是否雷同        System.out.println("str1 equals str2:" + str1.equals(str2)); // true        // equals 不能用于根本数据类型比拟        //        System.out.println(num1.equals(num2));    }}

总结

好了,以上就是无关操作符系列的相干知识点了。老规矩,如果您感觉对您有所帮忙,那就点个赞吧 .

对于文中所脱漏或者存在谬误的知识点,也欢送大家评论斧正呀!