SCJP笔记_章四_运算符

第四章 运算符


4.1 Java运算符

4.1.1 赋值运算符
复合赋值运算符(+=,-=,*=,/=)
[color=red]要知道=右边的优先级永远高于+=或其他的复合赋值元素符[/color]。

4.1.2 关系运算符

相等性运算符
== 和 !=

基本值的相等性
当比较字符时,Java使用字符的Unicode值作为字值。
[color=red]如果将浮点数与整数相比较,且两者的值相等的话,则==运算符通常将返回true[/color]

引用变量的相等性
==用来比较对象时,仅当两个变量都引用同一个对象时,==才返回true。

枚举的相等性
[color=red]枚举不可扩展,但是如果两个变量引用了相同的枚举常量,则它们==,equals也相等[/color]。

4.1.3 instanceof 比较
instanceof 只用于引用变量,以检查对象是否为某种类型。
instanceof 运算符只能用于测试对象(或null)属于相同类层次结构中的类类型。
对于接口,如果对象的任何一个超类实现了instanceof运算符右边的接口,则该对象就会通过instanceof测试。
[color=red]null instanceof String没错,但是结果永远是false[/color]

instanceof 编译器错误
不能将instanceof运算符在跨两个不同的类层次间测试。[color=red]dog instanceof cat会有编译错误[/color]
Boat b2=new Speedboat();
b2 instanceof Speedboat,结果是True,因为instanceof是在运行时,而在运行时多态性起作用。

4.1.4 算术运算符
+ - * /

求余运算符%

字符串连接运算符+
如果任何一个操作数为String,则+为连字符
如果两个操作数都是数字,则+为加法

递增和递减运算符++ --

4.1.5 条件运算符
x=(布尔表达式)?为true时所赋的值:为false时所赋的值,[color=red]条件运算符可以嵌套多层。[/color]

4.1.6 逻辑运算符

短路逻辑运算符&& ||,[color=red]只能用于操作布尔值[/color]
逻辑运算符(非短路)& |

短路和非短路的区别是:那 x1 && y1 和 x2 & y2 来说。
如果 x1 为false,那么不会运行y1语句;但是x2不管结果是什么,y2都会运行。

逻辑运算符^和!
^异或,如果恰好只有(有且仅有)一个操作数为true,则返回true。

常用操作符的优先级顺序:

优先级 操作符分类 操作符
高 一元操作符 ! ++ -- -
| 数学运算符 * / % + -
| 比较操作符 > < >= <= != ==
| 逻辑操作符 && || & | ^
V 三元操作符 x?y:z
低 赋值操作符 = *= -= += /= %=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值