-
2021-05-20 15:37:22
优先级 运算符 结合性 1 ()[] 从左到右 2 ! +(正) -(负) ~ ++ - - 从右到左 3 * / % 从左到右 4 +(加) -(减) 从左到右 5 << >> >>> 从左到右 6 < <= > >= instanceof 从左到右 7 == != 从左到右 8 &(按位与) 从左到右 9 ^ 从左到右 10 | 从左到右 11 && 从左到右 12 ‖ 从左到右 13 ? : 从右到左 14 = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= 从右到左 转自:链接
注意:
①该表中优先级为1的优先级最高,优先级14的优先级最低。
②结合性是指运算符结合的顺序,通常情况下是“从左到右”。“从右向左”最典型的运算符就是负号,例如3 + -4,意义是3加-4,符号首先和运算符右侧的内容结合。
③instanceof作用是判断对象是否为某个类或接口类型。
④要注意“正负号”和“加减号”,“按位与”和“逻辑与”的区别。尊重原创:(口诀)转自 链接
口诀:单目乘除为关系,逻辑三目后赋值单目:单目运算符+ –(负数) ++ – 等
乘除:算数单目运算符* / % + -
为:位移单目运算符<< >>
关系:关系单目运算符> < >= <= == !=
逻辑:逻辑单目运算符&& || & | ^
三目:三目单目运算符A > B ? X : Y
后:无意义,仅仅为了凑字数
赋值:赋值=更多相关内容 -
Java运算符优先级
2015-08-11 11:26:22在实际的开发中,不需要去记忆运算符的优先级别,也不要刻意的使用运算符的优先级别,对于不清楚优先级的地方使用小括号去进行替代 -
Java运算符优先级.pdf
2021-04-07 14:51:18Java运算符优先级.pdf -
java运算符优先级
2018-06-07 10:21:09java中运算符的优先级 优先级记忆方法:单目乘除为关系,逻辑三目后赋值。...Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别 11 的优先级最低。譬如,x = 7 + 3 * 2 得到的结...转载博客:https://blog.csdn.net/pc_gad/article/details/52861838
java中运算符的优先级
优先级记忆方法:单目乘除为关系,逻辑三目后赋值。(前辈总结的)
单目运算符:一次作用一个变量的运算符,又叫一元运算符
单目:单目运算符+ –(正负数) ,++ –,!(逻辑非),~(按位取反)
乘除:算数运算符:* / % + - (* / %优先级肯定是大于+-的)
为:位运算符:~(按位取反)<<(左移) >>(右移),^(也可以位运算,二进制异或)
关系:关系运算符:> < >= <= == !=
逻辑:逻辑运算符(除!)&& || & | ^
三目:条件运算符A > B ? X : Y
后:无意义,仅仅为了凑字数
赋值:= += -= *= /= %= |= &= ^=
说明:前优先级大于后,比如单目运算符~也是位运算符,~的优先级是单目级别的。至于赋值运算符中没有见过的自行测试所谓优先级,就是在表达式中的运算顺序。Java 中常用的运算符的优先级如下表所示:
级别为 1 的优先级最高,级别 11 的优先级最低。譬如,x = 7 + 3 * 2 得到的结果是 13 “先乘后加”嘛!
PS:大家没必要去死记运算符的优先级顺序,实际开发中,一般会使用小括号辅助进行优先级管理。例如:
分析:小括号优先级最高,因此
1、 执行 a + 18 ,结果为 30
2、 执行( a + 18 ) % 4 取模,结果为 2
3、 执行 a * ( ( a + 18 ) % 4 ),结果为 24
例子1:
public class HelloWorld {
public static void main(String[] args) {
int m = 5;
int n = 7;
int x=(m*8/(n+2))%m;
System.out.println(“m:” + m);
System.out.println(“n:” + n);
System.out.println(“x:” + x);
}
}运行结果:
m:5
n:7
x:4例子2:
表达式( 11+ 3* 8 ) / 4 % 3 的结果是?
第一步:计算3*8,结果为24;第二步:计算11+3*8,结果为35;第三步:计算(11 + 3 * 8) / 4,结果为8;第四步:计算(11 + 3 * 8) / 4 % 3,结果为2
-
Java运算符优先级(转)
2021-03-01 11:04:34Java运算符优先级序列号符号名称结合性(与操作数)目数说明1.点从左到右双目( )圆括号从左到右[ ]方括号从左到右2+正号从右到左单目-负号从右到左单目++自增从右到左单目前缀增,后缀增- -自减从右到左前缀减,后缀减...Java运算符优先级
序列号
符号
名称
结合性(与操作数)
目数
说明
1
.
点
从左到右
双目
( )
圆括号
从左到右
[ ]
方括号
从左到右
2
+
正号
从右到左
单目
-
负号
从右到左
单目
++
自增
从右到左
单目
前缀增,后缀增
- -
自减
从右到左
前缀减,后缀减
~
按位非/取补运算
从右到左
单目
!
逻辑非
从右到左
单目
3
*
乘
从左到右
双目
/
除
从左到右
双目
整数除法:取商的整数部分,小数部分去掉,不四舍五入
%
取余
从左到右
双目
4
+
加
从左到右
双目
-
减
从左到右
双目
5
<<
左移位运算符
从左到右
双目
>>
带符号右移位运算符
从左到右
双目
>>>
无符号右移
从左到右
双目
<=
小于或等于
从左到右
双目
>
大于
从左到右
双目
>=
大于或等于
从左到右
双目
instanceof
确定某对象是否属于指定的类
从左到右
双目
7
==
等于
从左到右
双目
!=
不等于
从左到右
双目
8
&
按位与
从左到右
双目
9
|
按位或
从左到右
双目
10
^
按位异或
从左到右
双目
11
&&
短路与
从左到右
双目
12
||
短路或
从左到右
双目
13
? :
条件运算符
从右到左
三目
14
=
赋值运算符
从右到左
双目
+=
混合赋值运算符
-=
*=
/=
%=
&=
|=
^=
<<=
>>=
>>>=
说明:
1、算数运算符
+ :加法
- :减法
* :乘法
/ :除法
% :取余运算
2、关系运算符
< :只能比较基本类型数据之间的关系,不能比较对象之间的关系。
> : (同关系运算符“
<=: (同关系运算符“
>=: (同关系运算符“
== :若使用该运算符比较两个对象的引用(变量),则实质上是比较两个变量是否引用了相同的对象。所谓相同的对象是指,是否是在堆栈(Heap)中开辟的同一块儿内存单元中存放的对象。
若比较两个对象的引用(变量)所引用的对象的内容是否相同,则应该使用equals()方法,该方法的返回值类型是布尔值。需要注意的是:若用类库中的类创建对象,则对象的引用调用equals()方法比较的是对象的内容;若用自定义的类来创建对象,则对象的引用调用equals()方法比较的是两个引用是否引用了同一个对象,因为第二种情况equals()方法默认的是比较引用。
!= :(同关系运算符“==”)
3、逻辑运算符 (操作符只能是布尔类型的)
&&
||
!
1 public class Demo {
2 public static void main(String[] args) {
3 // System.out.println((!'1'||'1')+5);//编译错误
4 // System.out.println(!5);//编译错误
5 // System.out.println(('1'||'1')+5);//编译错误
6 // System.out.println(1||2);//编译错误
7 // System.out.println(5-3||4-2);//编译错误
8 System.out.println(5<3||4>3);//true
9 }
10 }
4、位运算符
&
|
^
! :不可以与=联用,因为!是一元操作符;不可以对布尔类型的数据进行按位非运算
5、移位运算符(只能处理整数运算符)
Char、byte、short类型,在进行移位之前,都将被转换成int类型,移位后的结果也是int类型;移位符号右边的操作数只截取其二进制的后5位(目的是防止因为移位操作而超出int类型的表示范围:2的5次方是32,int类型的最大范围是32位);对long类型进行移位,结果仍然是long类型,移位符号右边的操作符只截取其二进制的后6位。
<< :
>> :若符号位为正,则在最高位插入0;若符号位为负,则在最高位插入1
>>> :无论正负,都在最高位插入0
1 public class Demo {
2 public static void main(String[] args) {
3 // 0000 0000 0000 0101
4 // 0000 0000 0000 0010
5 System.out.println(5>>1);//2
6 // 0000 0000 0000 1000
7 // 0000 0000 0000 0100
8 System.out.println(8>>1);//4
9 System.out.println(3+5>>1);//4
10 System.out.println(3+(5>>1));//5
11 }
12 }
http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html
-
java运算符优先级.doc
2021-11-24 19:41:42java运算符优先级.doc -
java运算符优先级排序正确的是哪些?
2021-02-28 19:05:03但在Java运算符中也有优先级分别,你知道都是谁先谁后吗?跟小编一起来看看吧。Java中的优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。相同优先级中,按结合顺序计算。大多数运算是...在Java中,运算符是不可缺少的一份子,它支撑着Java的各种算法操作,与Java不可分离。但在Java运算符中也有优先级分别,你知道都是谁先谁后吗?跟小编一起来看看吧。
Java中的优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
相同优先级中,按结合顺序计算。大多数运算是从左至右计算,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
基本的优先级需要记住:
指针最优,单目运算优于双目运算。如正负号。
先乘除,后加减。
先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))
& 7.
逻辑运算最后计算。
例如,(1+3)+(3+2)*2,这个表达式如果按加号最优先计算,答案就是 18,如果按照乘号最优先,答案则是 14。
再如,x = 7 + 3 * 2,这里x得到13,而不是20,因为乘法运算符比加法运算符有较高的优先级,所以先计算3 * 2得到6,然后再加7。
下面具有最高优先级的运算符在最上面,最低优先级的在底部。类别 操作符 关联性
后缀 () [] . (点操作符) 左到右
一元 + + - !? 右到左
乘性 * /% 左到右
加性 + - 左到右
移位 >> >>> <
关系 >> = <
相等 == != 左到右
按位与 & 左到右
按位异或 ^ 左到右
按位或 | 左到右
逻辑与 && 左到右
逻辑或 | | 左到右
条件 ?: 右到左
赋值 = + = - = * = / =%= >> = <
逗号 , 左到右
优先级顺序看完了,我们来通过代码,加强一下:int n = 3>4 ? 100 : 200;
这行的代码运算执行顺序我们来写一下:
1.执行 3>4操作,得到布尔类型false的结果
2.通过结果false,将对应的表达式2的结果200,作为运算的最终结果
3.把200 赋值给变量n
接下来,我们看一个比较复杂的代码:int a = 5;
int b = 3;
int c = 1;
int n2 = (a>b && b>c) ? (c++) : (++c);
这段代码运算执行顺序我们也写一下:
1.小括号优先级高,我们先运算第一组小括号中的代码
1.1. 比较运算符”>” 优先级大于 逻辑运算符”&&”
先执行 a>b,得到结果true;
再执行 b>c,得到结果true;
最后执行 a>b的结果 && b>c的结果,即 true && true, 结果为true
2.三元运算符中的条件判断结果为true,返回表达式1的结果 c++
先将变量c的原有值赋值给变量n2,即n2值为1;
再将变量c的值自增1,更新为2。
以上就是今天的所有内容了,更多有关Java入门的知识请持续关注本网站了解吧。
-
java运算符优先级[整理].pdf
2021-10-19 15:13:05java运算符优先级[整理].pdf -
java运算符优先级[借鉴].pdf
2021-10-11 03:43:32java运算符优先级[借鉴].pdf -
java 运算符优先级
2020-11-13 17:35:24java 运算符优先级 优先级1最高,14最低。 -
Java 运算符优先级
2020-02-19 09:23:29Java 的运算符优先级 算术运算符优先级较高,关系和逻辑运算符优先级较低。 多数运算符具有左结合性,单目运算符、三目运算符、赋值运算符具有右结合性。 类别 操作符 关联性 后缀 () [] . (点操作符) ... -
常用对照表-Java运算符优先级[归纳].pdf
2021-10-12 03:56:15常用对照表-Java运算符优先级[归纳].pdf -
java代码-运算符优先级
2021-07-15 04:11:47java代码-运算符优先级 -
【Java笔记】Java运算符优先级记忆口诀
2018-12-15 12:06:56优先级口诀记忆: 单目乘除为关系,逻辑三目后赋值。(大佬总结出来的) 单目运算符:指运算所需变量为一个的运算符,即再运算中只有一个操作数,又称一元运算符 单目:!(逻辑非),~(按位取反),++ -- (自增自减...