【重新学java】2 运算符

Java支持的运算符

逻辑运算符
  &,|, &&,||,!,^
位运算符
   &,|,^,~ , >>,<<,>>> (了解!!!)
条件运算符
   ?:
扩展赋值运算符
  +=,-=,*=,/=

拓展赋值运算符

a+=b  和  a=a+b  区别:
(1)a+=b     可读性稍差 编译效率高   底层自动进行类型转换
(2)a=a+b   可读性好   编译效率低   手动进行类型转换
第三点类型转换具体指的是什么?
意思说如果a、b数据类型不一致,那么在“大的数据类型赋给小的数据类型”的情境下,a+=b不需要手动写强制转换,而a=a+b需要写,比如说

byte a = 10;
int b = 20;
a += b;
a = a+b ;  会报错,应更正为:a = (byte)(a+b); 

逻辑运算符

左右连接的是布尔类型的操作数

运算符名称规则
&逻辑与只要有一个操作数是false,那么结果一定是false
&&短路与效率高一些,只要第一个表达式是false,那么第二个表达式就不用计算了,结果一定是false
|逻辑或只要有一个操作数是true,那么结果一定是true
||短路或效率高一些,只要第一个表达式是true,那么第二个表达式就不用计算了,结果一定是true
!逻辑非相反结果
^逻辑异或两个操作数相同,结果为false,不相同,结果为true

条件运算符

格式: a?b:c
其中a是一个布尔类型的表达式,返回结果要么是true要么false,通过a的结果决定最终表达式的结果:
如果a的结果是true,那么表达式最终结果为b
如果a的结果是false,那么表达式最终结果为c

位运算符

左右连接的是具体的数值

运算符名称效果
<<左移a<<n结果上 = a * 2n ,但是位运算是最快的
>>有符号右移右移1位相当于除2取商
>>>无符号右移也就是右移过去后左边全是用0填
&1&1才为1
|0|0才为0
^异或相反才为1
~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值