Java运算符详解及其优先级

1.Java运算符详解

1.1赋值运算符(=)

①对基本类型赋值

a=b;

当b改变时,a不改变

②对对象类型赋值

a=b;

当b改变时,a也跟着改变

1.2算数运算法

①加号运算符(+)

②减号运算符(-)

③乘号运算符(*)

④除号运算符(/)

⑤求模运算符(%):从整数除法中获得余数

⑥一元加号运算符(+):a=+b

⑦一元减号运算符(-):a=-b

1.3自增和自减运算符

它们是唯一具有“副作用”的运算符(除那些涉及赋值的以外)。也就是说,它们会改变运算对象,

而不仅仅是使用自己的值。

①前缀自增运算符(++):++a

②前缀自减运算符(--):--a

③后缀自增运算符(++):a++

④后缀自减运算符(--):a--

1.4关系运算符

关系运算符生成的是一个“布尔”(Boolean)结果。它们评价的是运算对象值之间的关系。

若关系是真实的,关系表达式会生成true(真);若关系不真实,则生成false(假)。

①小于(<)

②大于(>)

③等于(==)

可以比较基本类型的内容是否相同,但不可以比较对象的内容是否相同。

要比较对象内容是否相对,要使用所有对象都适用的特殊方法equals()。

④小于或等于(<=)

⑤大于或等于(>=)

⑥不等于(!=)

1.5逻辑运算符

能生成一个布尔值(true 或false)。

操作逻辑运算符时,我们会遇到一种名为“短路”的情况。

举例:(a)||(b&&c),当a为true时,该表达式为true,而不必计算(b&&c)的值

①与(&&)

②或(||)

③非(!)

1.6按位运算符

按位运算符允许我们操作一个整数主数据类型中的单个“比特”,即二进制位。按位运算符会对两个自变量中对应的位执行布尔代数,并最终生成一个结果。

按位运算符可与等号(=)联合使用,以便合并运算及赋值:&=,|=和^=都是合法的(由于~是一元运算符,所以不可与=联合使用)。

我们将boolean(布尔)类型当作一种“单位”或“单比特”值对待,所以它多少有些独特的地方。我们可执行按位与,或和异或,但不能执行按位非(为了避免与逻辑非混淆)

①按位与运算符(&)

②按位或运算符(|)

③按位异或运算符(^)

④按位非运算符(~)

1.7移位运算符

左移可以看成乘以2,右移可以看成除以2。

①左移位运算符(<<)

能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)。

②“有符号”右移位运算符(>>)

则将运算符左边的运算对象向右移动运算符右侧指定的位数。“有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。

③“无符号”右移位运算符(>>>)

它使用了“零扩展”:无论正负,都在高位插入0。这一运算符是C 或C++没有的。

1.8三元if-else运算符

这种运算符比较罕见,因为它有三个运算对象。但它确实属于运算符的一种,因为它最终也会生成一个值。

这与本章后一节要讲述的普通if-else 语句是不同的。表达式采取下述形式:

布尔表达式 ? 值0:值1

若“布尔表达式”的结果为true,就计算“值0”,而且它的结果成为最终由运算符产生的值。但若“布尔

表达式”的结果为false,计算的就是“值1”,而且它的结果成为最终由运算符产生的值。

1.9逗号运算符(,)

需要用到逗号的唯一场所就是for 循环。

举例:(for i=1;i<10;i++,j=i+5)

1.10字串运算符(+)

这个运算符在Java 里有一项特殊用途:连接不同的字串

1.11造型运算符

“造型”(Cast)的作用是“与一个模型匹配”。

举例:long l = (long)i

Java 允许我们将任何主类型“造型”为其他任何一种主类型,但布尔值(bollean)要除外,后者根本不允许进行任何造型处理。

1.12instanceof运算法

确定某对象是否属于指定的类或指定类的子类

class Animal{}
class Bird extends Animal {}
Animal a= new Animal();
Animal b=new Bird();
System.out.println( b instanceof Animal);//输出true
System.out.println( a instanceof Animal);//输出true
System.out.println( a instanceof Bird);//输出true


2.Java运算符优先级

序列号(越小代表优先级越高)符号名称结合性操作目数说明
1.成员运算符从左到右双目 
1( ) 从左到右  
1[ ]索引运算符从左到右  
2+正号从右到左单目 
2-负号从右到左单目 
2++自增从右到左单目前缀自增,后缀自增
2--自减从右到左单目前缀自减,后缀自减
2~按位非(按位取反)从右到左单目 
2!逻辑非从右到左单目 
3*从左到右双目 
3/从左到右双目 
3%求模从左到右双目 
4+从左到右双目 
4-从左到右双目 
5<<左移位从左到右双目 
5>>带符号右移位从左到右双目 
5>>>无符号右移位从左到右双目 
6<小于从左到右双目 
6<=小于或等于从左到右双目 
6>大于从左到右双目 
6>=大于或等于从左到右双目 
6instanceof确定某对象是否属于指定的类从左到右双目 
7==等于从左到右双目 
7!=不等于从左到右双目 
8&按位与从左到右双目 
9|按位或从左到右双目 
10^按位异或从左到右双目 
11&&逻辑与从左到右双目 
12||逻辑或从左到右双目 
13? :if-else运算符从左到右三目唯一的三目运算符
14=赋值运算符从右到左双目 
14+=混合赋值运算符从右到左双目 
14-+混合赋值运算符从右到左双目 
14*=混合赋值运算符从右到左双目 
14/=混合赋值运算符从右到左双目 
14%=混合赋值运算符从右到左双目 
14&=混合赋值运算符从右到左双目 
14|=混合赋值运算符从右到左双目 
14^=混合赋值运算符从右到左双目 
14<<=混合赋值运算符从右到左双目 
14>>=混合赋值运算符从右到左双目 
14>>>=混合赋值运算符从右到左双目 



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值