Java运算符优先级(转)
转自:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html
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);//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运算符优先级(转)的更多相关文章
- 【转】Java运算符优先级
原文网址:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 ...
- 【java基础】Java运算符优先级
Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 1 . 点 从左到右 双目 ( ) 圆括号 从左到右 [ ] 方括号 从左到右 2 + 正号 从右到左 单目 - 负号 ...
- java运算符优先级记忆口诀
尊重原创:(口诀)转自http://lasombra.iteye.com/blog/991662 今天看到<java编程思想>中的运算符优先级助记口诀,不过"Ulcer Addi ...
- java运算符优先级与流程控制
1. Java 的方法Method (函数 Function), 功能, 动作 1) 方法就是函数: y=f(x)=3x+6; 2) 方法的语法 (修饰词)(返回值类型)(方法名)(参数列表){ ...
- 一、基础篇--1.1Java基础-Java运算符优先级
在一个表达式中可能包含多个有不同运算符连接起来的.具有不同数据类型的数据对象:由于表达式有多种运算,不同的结合顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结 ...
- java运算符优先级和结合性
运算符 结合性 [ ] . ( ) (方法调用) 从左向右 ! ~ ++ -- +(一元运算) -(一元运算) 从右向左 * / % 从左向右 + - 从左向右 << >> & ...
- Java运算符优先级
序列号 符号 名称 结合性(与操作数) 目数 说明 1 . 点 从左到右 双目 ( ) 圆括号 从左到右 [ ] 方括号 从左到右 2 + 正号 从右到左 单目 - 负号 从右到左 单目 ++ ...
- Java]运算符优先级
https://blog.csdn.net/xiaoli_feng/article/details/4567184
- JAVA之运算符优先级
Java运算符优先级从高到低 运算符 结合性 [ ] . ( ) (方法调用) 从左向右 ! ~ ++ -- +(一元运算) -(一元运算) 从右向左 * / % 从左向右 + - 从左向右 < ...
随机推荐
- centOS 下 VSFTP的安装和设置
http://blog.csdn.net/swiftshow/article/details/7367609 一.FTP的安装 1.检测是否安装了FTP :[root@localhost ~]# rp ...
- [转载]Using ngOptions In AngularJS
http://odetocode.com/blogs/scott/archive/2013/06/19/using-ngoptions-in-angularjs.aspx?utm_source=tui ...
- cf.295.B Two Buttons (bfs)
Two Buttons time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- js矩阵菜单或3D立体预览图片效果
js矩阵菜单或3D立体预览图片效果 下载地址: http://files.cnblogs.com/elves/js%E7%9F%A9%E9%98%B5%E8%8F%9C%E5%8D%95%E6%88% ...
- Activity切换后,如i何保存上一个Activit的状态
在Activity切换中一般有三种方式保存上一个Activity的状态数据.一.全局变量 public static int type = 0;二.SharedPreference 保 ...
- iOS开发——底层OC篇&运行时常用
运行时常用 什么是Runtime(前面的文章已经说的很清楚了,这里就简单的介绍一下) 我们写的代码在程序运行过程中都会被转化成runtime的C代码执行,例如[target doSomething]; ...
- Nginx安装与配置文件解析
导读 Nginx是一款开放源代码的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3代理服务,是一款自由的软件,同时也是运维工程师必会的一种服务器,下面我就简单的说一下Nginx服务器的 ...
- HDU 2897
Problem Description 当日遇到月,于是有了明.当我遇到了你,便成了侣. 那天,日月相会,我见到了你.而且,大地失去了光辉,你我是否成侣?这注定是个凄美的故事.(以上是废话) 小t和所 ...
- 《linux备份与恢复之二》3.19 dump(文件系统备份)
<Linux指令从初学到精通>第3章文件管理,本章介绍了许多常用命令,如cp.ln.chmod.chown.diff.tar.mv等,因为这些都与文件管理相关,在日常的使用中经常用到,因此 ...
- QEMU 使用的镜像文件:qcow2 与 raw
qcow2 的基本原理 qcow2 镜像格式是 QEMU 模拟器支持的一种磁盘镜像.它也是可以用一个文件的形式来表示一块固定大小的块设备磁盘.与普通的 raw 格式的镜像相比,有以下特性: 更小的空间 ...