序列号

符号

名称

结合性(与操作数)

目数

说明

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);//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 }

Java运算符优先级的更多相关文章

  1. Java运算符优先级(转)

    转自:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 ...

  2. 【转】Java运算符优先级

    原文网址:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 ...

  3. 【java基础】Java运算符优先级

    Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 1 . 点 从左到右 双目 ( ) 圆括号 从左到右   [ ] 方括号 从左到右   2 + 正号 从右到左 单目 - 负号 ...

  4. java运算符优先级记忆口诀

    尊重原创:(口诀)转自http://lasombra.iteye.com/blog/991662 今天看到<java编程思想>中的运算符优先级助记口诀,不过"Ulcer Addi ...

  5. java运算符优先级与流程控制

    1. Java 的方法Method (函数 Function), 功能, 动作 1) 方法就是函数: y=f(x)=3x+6; 2) 方法的语法   (修饰词)(返回值类型)(方法名)(参数列表){  ...

  6. 一、基础篇--1.1Java基础-Java运算符优先级

    在一个表达式中可能包含多个有不同运算符连接起来的.具有不同数据类型的数据对象:由于表达式有多种运算,不同的结合顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结 ...

  7. java运算符优先级和结合性

    运算符 结合性 [ ] . ( ) (方法调用) 从左向右 ! ~ ++ -- +(一元运算) -(一元运算) 从右向左 * / % 从左向右 + - 从左向右 << >> & ...

  8. Java]运算符优先级

    https://blog.csdn.net/xiaoli_feng/article/details/4567184

  9. JAVA之运算符优先级

    Java运算符优先级从高到低 运算符 结合性 [ ] . ( ) (方法调用) 从左向右 ! ~ ++ -- +(一元运算) -(一元运算) 从右向左 * / % 从左向右 + - 从左向右 < ...

随机推荐

  1. 阶乘 求n!中质因数的个数

    在n!中末尾有几个0 取决于n!中5的个数(2肯定比5多) 所以遍历从1到n的数,看总共有几个5即可 ..N do j = i; == ) ++ret; j /= ; end end 有个nb的方法: ...

  2. c# 其他技术学习

    1.注册表编辑 为了方便对注册表进行操作,.NET提供了Registry类和RegistryKey类 2.API函数的应用 (1)自定义特性的代码:在类.属性.方法的上方加上“[]”的代码 (2)有个 ...

  3. 烂泥:U盘安装Centos6.5

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 使用U盘安装Centos6.5,需要以下几个步骤: 1. 制作U盘linux系统 2. 设置服务器BIOS 3. 安装Centos,注意引导分区的安装 ...

  4. JavaScript中的不可见数据类型

    JS提供了一些内置对象.函数和构造器供我们编程,如Math.parseInt.Object.Array等.这些都是可见的,编程时可以使用的.比如我可以new Object 或 new Array. 有 ...

  5. Android 开发框架

    Android 开发框架包括基本的应用功能开发.数据存储.网络访问三大块. 1 应用方面 一般而言,一个标准的Android 程序包括Activity.Broadcast Intent Receive ...

  6. lvs realserver 配置VIP

    # $# 表示提供到shell脚本或者函数的参数总数: # 1表示只有一个参数. #/bin/bash #file: tun_RS.sh if [ $# -ne 1 ]; then echo “usa ...

  7. 探索 OpenStack 之(13):研究 Keystone

    Keystone 是 OpenStack Identity Service 的项目名称.本文就试着尽可能深入地研究 Keystone. 1. Keystone 的功能 做为 OpenStack 云系统 ...

  8. B+树的特点

    1.B+树是应文件系统产生的B树的变种.它依然是一颗多路查找树,与B树相比它的不同体现在: (1).如果非叶子节点包含n个关键码,则这个节点有n个子树. (2).非叶子节点仅包含关键码信息,叶子节点包 ...

  9. HDU 3667 费用流(拆边)

    题意:有n个城市(1~n),m条有向边:有k件货物要从1运到n,每条边最多能运c件货物,每条边有一个危险系数ai,经过这条路的费用需要ai*x2(x为货物的数量),问所有货物安全到达的费用. 思路:c ...

  10. Unity原厂讲师大解密

    Asset Bundle工作流程及人物换装实例- 刘刚 Unity内部的资源有两种 Resources:有10年历史,尽量用资产包 Asset Bundle:昵称AB,现今Unity处理资源的中心 A ...