Java中常用运算符及其优先级总结

简介: Java中常用运算符及其优先级总结

前言


  相信很多小伙伴遇到过一个问题,运算符的优先级,在程序运行的过程中哪些运算优先进行,哪些运算后执行呢。很多入门的伙伴都受此困扰。本次将基于运算符进行一次简单系统的介绍。


运算符



  程序运行的过程就是不断的进行数学运算的过程,在Java中也有各种各样的运算符,主要包含的运算符有:算术运算符、关系运算符、位运算符、逻辑运算符、赋值运算符、其他运算符。算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。


算术运算符


操作符 名称 描述
+ 两个值相加
- 两个值相减
* 两个值相乘
/ 两个值相除
取余 余数
++ 自增 操作数的值增加1
-- 自减 操作数的值减少1


算术运算符示例如下:


public static void main(String[] args) {
        int i = 5;
        int j = 3;
        System.out.println("i+j = " + (i + j));
        System.out.println("i-j = " + (i - j));
        System.out.println("i*j = " + (i * j));
        System.out.println("i/j = " + (i / j));
        System.out.println("i%j = " + (i % j));
        System.out.println("i++ = " + i++);
        System.out.println("j-- = " + j--);
        System.out.println("i = " + i);
        System.out.println("j = " + j);
        System.out.println("++i = " + ++i);
        System.out.println("--j = " + --j);
    }


执行上面算术运算符,输出结果:


i+j = 8
i-j = 2
i*j = 15
i/j = 1
i%j = 2
i++ = 5
j-- = 3
i = 6
j = 2
++i = 7
--j = 1


image.png


通过输出结果可以看到i++ 和j--都是先使用,使用之后进行自增或者自减。而++i和--J都是先进行自增1 或者自减1之后进行运算的。


关系运算符


操作符 名称 描述
== 相等 操作符左右两边值相同 为真
!= 不等于 操作符左右两边值不相同 为真
> 大于 操作符左边值大于右边值 为真
< 小于 操作符左边值小于右边值 为真
>= 大于等于 操作符左边值大于等于右边值 为真
<= 小于等于 操作符左边值小于等于右边值 为真

示例


关系运算符示例如下:


public static void main(String[] args) {
        int i = 5;
        int j = 3;
        System.out.println("i==j 为 " + (i ==j));
        System.out.println("i!=j 为 " + (i !=j));
        System.out.println("i>j 为 " + (i >j));
        System.out.println("i<j 为 " + (i <j));
        System.out.println("i>=j 为 " + (i >=j));
        System.out.println("i<=j 为 " + (i <=j));
    }


执行上面关系运算符之后,输出结果为:


i==j 为 false
i!=j 为 true
i>j 为 true
i<j 为 false
i>=j 为 true
i<=j 为 false

image.png


位运算符


位操作是程序设计中对位模式按位或二进制数的一元和二元操作。


操作符 名称 描述
同1 为1否则为0
| 有1为1 否则为0
^ 相同为0,否则为1
按位取反运算符 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
<< 按位左移运算符 左操作数按位左移右操作数指定的位数
>> 按位右移运算符 左操作数按位右移右操作数指定的位数
>>> 按位右移补零操作符 移动得到的空位以零填充


逻辑运算符


操作符 名称 描述
&& 逻辑与 当且仅当两个操作数都为真
| | 逻辑或 如果任何两个操作数任何一个为真w
逻辑非 用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。


逻辑运算符示例如下:


public static void main(String[] args) {
        int i = 5;
        int j = 3;
        System.out.println("i && j 为 " + (i==5 && j==3));
        System.out.println("i || j 为 " + (i==5 || j==3));
        System.out.println("i ! j 为 " + (i !=j));
    }


逻辑运算符运行结果为:


i && j 为 true
i || j 为 true
i!j 为 true

image.png


赋值运算符


操作符 名称 描述
= 赋值运算
+ = 加和赋值
- = 减和赋值
* = 乘和赋值
/ = 除和赋值
(%)= 取模和赋值
<< = 左移位赋值
>> = 右移位赋值
&= 按位与
^ = 按位异或
| = 按位或


赋值运算符示例如下:


public static void main(String[] args) {
        int i = 5;
        int j = 3;
        System.out.println("i=j 为 " + (i =j));
        i = 5;j = 3;
        System.out.println("i+ =j 为 " + (i +=j));
        i = 5;j = 3;
        System.out.println("i- =j 为 " + (i -=j));
        i = 5;j = 3;
        System.out.println("i* =j 为 " + (i *=j));
        i = 5;j = 3;
        System.out.println("i/ =j 为 " + (i /=j));
        i = 5;j = 3;
        System.out.println("i(%)=j 为 " + (i %=j));
        i = 5;j = 3;
        System.out.println("i<< =j 为 " + (i <<=j));
        i = 5;j = 3;
        System.out.println("i>> =j 为 " + (i >>=j));
        i = 5;j = 3;
        System.out.println("i&=j 为 " + (i &=j));
        i = 5;j = 3;
        System.out.println("i^ =j 为 " + (i ^=j));
        i = 5;j = 3;
        System.out.println("i| =j 为 " + (i |=j));
    }


赋值运算符运行结果如下:


i=j 为 3
i+ =j 为 8
i- =j 为 2
i* =j 为 15
i/ =j 为 1
i(%)=j 为 2
i<< =j 为 40
i>> =j 为 0
i&=j 为 1
i^ =j 为 6
i| =j 为 7

image.png


三目运算符


  三目运算符有3个操作数,并且需要判断布尔表达式的值,在三目运算符“?”前是表达式,如果表达式的值为真,则输出第二位操作数的值,如果三目运算符的结果为假,则输出第三位操作数的值


操作符 名称 描述
? : 表达式真假?真值:假值


三目运算符示例如下:


public static void main(String[] args) {
        int i = 5;
        int j = 3;
        String str = i > j ? "i>j" : "i<j";
        System.out.println(str);
    }


三目运算符运行结果为:


i>j

image.png


Java运算符优先级


  当多个运算符出现在一个表达式中,这是我们需要按照一定的执行顺序去处理,否则可能出现各种各样的结果。本文末尾总结了一下运算符的基本执行顺序,其中约靠左的优先级越好。优先级从高到低依次为:

一元运算 > 乘除 > 加减 > 移位 > 关系 > 相等 > 按位与 > 按位异或 > 按位或 > 逻辑与 > 逻辑或 > 三目运算符 > 赋值


结语


  好了,以上就是Java中常用运算符及其优先级总结



目录
相关文章
|
2月前
|
Java C++
Java基础之运算符
Java运算符包括算术、赋值、关系、逻辑、条件和类型等,如加减乘除、自增自减(前缀++n/后缀n++)、赋值(+/-/*/=等)、比较(==/!=/&gt;/&lt;等)、逻辑(&&/||/!)和三元运算符。自增前后缀的区别在于赋值顺序。初面常问:=与==的区别(赋值vs比较),==与equals()(引用vs内容比较),&&与&(短路逻辑与vs按位与)。
19 2
|
11天前
|
存储 Java
02 Java基础语法(变量+数据类型+运算符)(下)
02 Java基础语法(变量+数据类型+运算符)
16 5
|
1月前
|
安全 Java 测试技术
day16:Java零基础-instanceof 运算符
【7月更文挑战第16天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
34 8
|
1月前
|
Java 测试技术
day14:Java零基础-条件运算符
【7月更文挑战第14天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
26 3
|
1月前
|
Java 测试技术 开发者
day15:Java零基础-赋值运算符
【7月更文挑战第15天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
17 1
|
2月前
|
Java
哇塞!Java 基本语法的运算符,你真的懂了吗?算术运算符篇
【6月更文挑战第14天】Java中的算术运算符是编程基础,包括加法`+`(用于数字相加和字符串拼接)、减法`-`、乘法`*`、除法`/`(需防除数为零)和取余`%`。它们在计算位移、周期性问题等场景中广泛应用。理解并熟练掌握这些运算符,能提升编程效率和代码质量。现在就开始实践,发掘它们的更多可能性吧!
23 3
|
2月前
|
Java 程序员 API
[笔记] 疯狂JAVA讲义(第3版)第3章 数据类型和运算符
[笔记] 疯狂JAVA讲义(第3版)第3章 数据类型和运算符
|
2月前
|
算法 Java
炸裂!Java 基本语法的运算符世界,等你来探索!算术运算符特辑
【6月更文挑战第14天】Java中的算术运算符是基础关键,如加法&quot;+&quot;用于数字相加和字符串拼接,减法&quot;-&quot;求差,乘法&quot;*&quot;相乘,除法&quot;/&quot;注意整数除法会舍去小数,浮点数则保留,取模&quot;%&quot;)返回除法余数。熟练掌握这些运算符能提升编程效率,构建复杂逻辑。继续探索Java运算符世界,创造更多精彩程序!
18 1
|
2月前
|
存储 Java
Java基础手册(标识符 关键字 字面值 变量 数据类型 字符编码 运算符 控制语句 方法及方法重载和递归 面向对象与面向过程)
Java基础手册(标识符 关键字 字面值 变量 数据类型 字符编码 运算符 控制语句 方法及方法重载和递归 面向对象与面向过程)
28 0
|
2月前
|
Java
Java中的左移运算符及其在实现加法效果上的应用
Java中的左移运算符及其在实现加法效果上的应用
17 0