Java运算符详解

介绍

Java是一种广泛使用的计算机编程语言,它提供了丰富多彩的运算符。这些运算符允许程序员进行各种计算,包括算术、逻辑、位和其他类型的运算。在本文中,我们将深入探讨Java运算符的种类、使用方法及其应用。

JAVA赋值运算符

JAVA赋值运算符用于将一个值赋给变量。JVM需要知道要赋的值,所以运算符右侧应该有一个表达式,赋值运算符将表达式计算并将结果赋给左侧的变量。

Java赋值运算符列表:

=         简单的赋值运算符,可以把右边的值赋给左边的变量
+=        加赋值运算符,左右两边的操作数相加后赋值给左边的变量
-=        减赋值运算符,左右两边的操作数相减后赋值给左边的变量
*=        乘赋值运算符,左右两边的操作数相乘后赋值给左边的变量
/=        除赋值运算符,左右两边的操作数相除后赋值给左边的变量
%=        取模赋值运算符,左右两边的操作数取模后赋值给左边的变量
 <>=      右移后赋值运算符,左边操作数的所有位都右移指定数量的位,然后赋值给左边的变量
 &=       按位与赋值运算符,左右两边的操作数通过按位与运算后赋值给左边的变量
 ^=       按位异或赋值运算符,左右两边的操作数通过按位异或运算后赋值给左边的变量
 |=       按位或赋值运算符,左右两边的操作数通过按位或运算后赋值给左边的变量

JAVA运算符的优先级

Java运算符有不同的优先级,当表达式包含多个运算符时,运算符会按照预定顺序进行计算。最高优先级的运算符先计算,然后是次高优先级的运算符,以此类推。如果表达式中有括号,则括号内的子表达式先计算。

Java运算符的优先级列表:

1. (),括号表达式,最高优先级的运算符,先计算括号内的表达式
2. ++,--,自增和自减
3. +,-,正负号
4. !,逻辑反
5. ~,位反
6. *,/,%,乘、除和取模
7. +,-,加和减
8. <>,>>>,位移
9. <,,>=,比较运算符
10. ==,!=,相等和不相等运算符
11. &,位与
12. ^,位异或
13. |,位或
14. &&,逻辑与
15. ||,逻辑或
16. ? :,三元运算符
17. =,赋值
18. +=,-=,*=,/=,%=,及其他赋值运算符,最低优先级的运算符,最后计算。

JAVA语言运算符

Java提供了一些特殊的运算符,使程序员能更方便地进行操作。

Java语言运算符列表:

instanceof   instanceof是Java的二元运算符,用于检查左侧的对象是否是右侧类的实例,是返回true,否则返回false。
?

JAVA位运算符

Java位运算符是对二进制数进行操作的运算符,直接对二进制操作,不做转换。

Java位运算符列表:

&    按位与运算符,两个两个操作数的相应位都为1,则该位的结果为1,否则为0。
|    按位或运算符,两个操作数的相应位中只要有一个为1,该位的结果为1,否则为0。
^    异或运算符,两个操作数的相应位不同,该位结果为1,否则为0。
~    取反运算符,反转操作数的位
<>   右移运算符,左操作数的位向右移动,如果是正数则在左侧填写0,如果是负数,在左侧填写1,右移n位相当于除以2的n次方。
>>>  无符号右移运算符,左操作数的位向右移动,高位填充0,低位直接去除。

JAVA移位运算符

Java移位运算符可以将操作数的位向左或向右移动指定的位数。在向左移位时,操作数的符号位将向左移动并且左侧空出的位补上0。在向右移位时,右侧空出的位补上0或1(符号位无论如何都不变)。

Java移位运算符列表:

<>   右位移运算符,将操作数的位向右移动指定的位数
>>>  无符号右位移运算符,与右移类似,但是左侧用0来补位,符号位也改变了。

JAVA运算符综合实例

Java运算符综合实例:

public class OperatorExample {
    public static void main(String[] args) {
        int number1 = 10;
        int number2 = 5;
        int number3 = 3;
        boolean test = true;

        // 算术运算符
        System.out.println("Addition: " + (number1 + number2));
        System.out.println("Subtraction: " + (number1 - number2));
        System.out.println("Multiplication: " + (number1 * number2));
        System.out.println("Division: " + (number1 / number2));
        System.out.println("Modulus: " + (number1 % number2));

        // 关系运算符
        System.out.println("Greater than: " + (number1 > number2));
        System.out.println("Less than: " + (number1 = number2));
        System.out.println("Less than or equal to: " + (number1  number2)));
        System.out.println("OR: " + (test || (number1 > number2)));
        System.out.println("NOT: " + !(number1 > number2));

        // 位运算符
        System.out.println("Bitwise AND: " + (number1 & number2));
        System.out.println("Bitwise OR: " + (number1 | number2));
        System.out.println("Bitwise XOR: " + (number1 ^ number2));
        System.out.println("Bitwise NOT: " + ~number1);
        System.out.println("Left Shift: " + (number1 <> 1));
        System.out.println("Unsigned Right Shift: " + (number1 >>> 1));

        // 赋值运算符
        number1 += number2;
        System.out.println("Add and Assign: " + number1);
        number1 -= number2;
        System.out.println("Subtract and Assign: " + number1);
        number1 *= number2;
        System.out.println("Multiply and Assign: " + number1);
        number1 /= number2;
        System.out.println("Divide and Assign: " + number1);
        number1 %= number2;
        System.out.println("Modulus and Assign: " + number1);
        number1 <>= number2;
        System.out.println("Right Shift and Assign: " + number1);
        number1 &= number2;
        System.out.println("Bitwise AND and Assign: " + number1);
        number1 ^= number2;
        System.out.println("Bitwise XOR and Assign: " + number1);
        number1 |= number2;
        System.out.println("Bitwise OR and Assign: " + number1);
    }
}

以上代码输出如下:

Addition: 15
Subtraction: 5
Multiplication: 50
Division: 2
Modulus: 0
Greater than: true
Less than: false
Greater than or equal to: true
Less than or equal to: false
Equal to: false
AND: true
OR: true
NOT: false
Bitwise AND: 0
Bitwise OR: 15
Bitwise XOR: 15
Bitwise NOT: -11
Left Shift: 20
Right Shift: 5
Unsigned Right Shift: 5
Add and Assign: 15
Subtract and Assign: 10
Multiply and Assign: 50
Divide and Assign: 10
Modulus and Assign: 0
Left Shift and Assign: 160
Right Shift and Assign: 20
Bitwise AND and Assign: 0
Bitwise XOR and Assign: 5
Bitwise OR and Assign: 5

总结

本文介绍了Java运算符的种类、使用方法及其应用。Java运算符有不同的优先级,当表达式包含多个运算符时,运算符会按照预定顺序进行计算。Java位运算符是对二进制数进行操作的运算符,直接对二进制操作,不做转换。而Java移位运算符可以将操作数的位向左或向右移动指定的位数。通过本文,希望读者能够更好地理解Java运算符,并灵活地运用他们在代码中。

原创文章,作者:WNUI,如若转载,请注明出处:https://www.506064.com/n/134745.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
WNUIWNUI
上一篇 2024-10-04 00:08
下一篇 2024-10-04 00:08

相关推荐

  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • Java 8 Group By 会影响排序吗?

    是的,Java 8中的Group By会对排序产生影响。本文将从多个方面探讨Group By对排序的影响。 一、Group By的概述 Group By是SQL中的一种常见操作,它…

    编程 2025-04-29

发表回复

登录后才能评论