Java运算符优先级

序列号

符号

名称

结合性(与操作数)

目数

说明

1

.

从左到右

双目

 

( )

圆括号

从左到右

   

[ ]

方括号

从左到右

   

2

+

正号

从右到左

单目

 

-

负号

从右到左

单目

 

++

自增

从右到左

单目

前缀增,后缀增

- -

自减

从右到左

前缀减,后缀减

~

按位非/取补运算

从右到左

单目

 

逻辑非

从右到左

单目

“!”不可以与“=”联用

3

*

从左到右

双目

 

/

从左到右

双目

整数除法:取商的整数部分,小数部分去掉,不四舍五入

%

取余

从左到右

双目

 

4

+

从左到右

双目

 

-

从左到右

双目

 

5

<<

左移位运算符

从左到右

双目

 

>>

带符号右移位运算符

从左到右

双目

 

>>>

无符号右移

从左到右

双目

 

6

<

小于

从左到右

双目

关系运算符“大于”说明

<=

小于或等于

从左到右

双目

 

>

大于

从左到右

双目

 

>=

大于或等于

从左到右

双目

 

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);//true9     }
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 01014         // 0000 0000 0000 00105         System.out.println(5>>1);//26         // 0000 0000 0000 10007         // 0000 0000 0000 01008         System.out.println(8>>1);//49         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

转载于:https://www.cnblogs.com/softidea/p/5300154.html

Java运算符优先级(转)相关推荐

  1. java 运算符优先级

    java 运算符优先级 在表达式中,那个运算符先执行后执行是要看优先级的,例如"*,/"的优先级高于"+,-". 优先级 运算符 1 () 2 !,++,– 3 ...

  2. Java运算符优先级顺序

    Java运算符优先级顺序 图集说明: 1.算数运算符 补充两个: 单目运算符 正号 +10 10 单目运算符 负号 n=10;-n; -10 (1)除法规则 / 若两个操作数都是整型,结果也是整型,除 ...

  3. java与或优先级,Java 运算符优先级

    Java 运算符优先级 优先级 运算符 名称 1 ( ) 括号 2 [ ] , . 后缀运算符 3 - (一元运算符,取负数) , ! , ~ , ++ , -- 一元运算符 4 * , / , % ...

  4. Java 运算符和Java运算符优先级

    Java 运算符和Java运算符优先级 Java 运算符 算术运算符 关系运算符 逻辑运算符 赋值运算符 条件运算符(?:) 位运算符 Java运算符优先级 Java 运算符 我们可以把运算符分成以下 ...

  5. java运算符优先级

    Java 语言中运算符的优先级共分为 14 级,其中 1 级最高,14 级最低.在同一个表达式中运算符优先级高的先执行. 有一个口诀:  单目乘除为关系,逻辑三目后赋值. 单目:单目运算符+ –(负数 ...

  6. Java运算符优先级介绍!

    运算符丰富是 Java 语言的主要特点之一,它提供的运算符数量之多,在高级语言中是少见的.那么当多个运算符出现在一个表达式中,谁先谁后呢? 这就涉及到运算符的优先级别的问题.在一个多运算符的表达式中, ...

  7. Java教程:Java运算符优先级

    本篇文章由 泉州SEO www.234yp.com 整理发布,Java教程 www.234yp.com/Article/198113.html 谢谢合作! Java教程所有的数学运算都认为是从左向右运 ...

  8. java运算符(java运算符优先级由高到低)

    java运算符是什么? 一.算术运算符:单目:+(取正)-(取负) ++(自增1) - -(自减1) 双目:+ - * / %(取余) 三目:a>b?true:false 说明:当a大于b的时候 ...

  9. Java运算符优先级和表达式及数据类型转换

    计算机程序在处理数据时会进行大量的计算,而数据的运算则需要借助运算符和表达式来完成. 表达式是指由操作数和运算符组成的用于完成某种运算功能的语句                         子表达 ...

最新文章

  1. Qt实现 指针式时钟+动态时钟 (详细注释)
  2. 抽象工厂与工厂模式例子
  3. 为什么LINKBUTTON不能插在LTEMTEMPLATE里???
  4. 计算机学校推荐专科,专科计算机专业学校推荐
  5. BZOJ 4706: B君的多边形 找规律
  6. C#图片按指定大小分割
  7. zookeeper安装和使用 windows环境
  8. android datepicker 参数设置,如何在Android DatePicker中设置最小和最大日期?
  9. 使用Java编一个有意思的_一个有趣的Java编译问题
  10. 上传文件到阿里云OSS报错-Unable to execute HTTP request: You have no right to access this object because of buc
  11. 第00次博文——我对Python的期待与思考
  12. sql基础知识第二部分
  13. python dataframe去除重复项_python - Pandas DataFrame处理查找DataFrame中的重复项 - 堆栈内存溢出...
  14. 怎没使用新浪微博html5,如何使用新浪微博
  15. OpenCV Mat类的convertTo函数,数据类型转换
  16. 使用win10开启wifi移动热点解决软媒wifi助手开启失败问题
  17. 借助YunOS ,开发技术、运营能力大幅提升
  18. absolute位置用法html,html/css中相对定位relative和绝对定位absolute的用法
  19. 机器学习告诉你,新型冠状病毒接下来将如何变异?
  20. osgEarth示例分析——osgearth_manip

热门文章

  1. python普通菜单_python多级菜单
  2. transformer架构的理解
  3. mysql 指示符安装,Mysql的安装
  4. 一般项目中是如何调bug的 ------- 手把手带你体验整个流程
  5. c++中同名函数的三个不同术语(c++细节篇八)
  6. Mac中word插入图片保持原来的清晰度
  7. 信息系统项目管理师考试时间安排
  8. SVN Working Copy xxx locked
  9. 《系统集成项目管理工程师》必背100个知识点-76配置审计
  10. Ionic创建页面以及页面之间跳转、页面添加返回按钮、新增底部页面