运算符

逻辑运算符:连接布尔类型的运算符

逻辑与:& 有false则false

逻辑异或:^ 相同为false 不同为true

逻辑或:| 有true则true

逻辑非:!偶数个不改变,非false则true,非true则false

&&和&的区别?同理||和|的区别:

1.最终结果一样2. 相较&有短路的作用,即若&&左边的表达式结果为false,则右边的表达式不执行(右边的结果对最终表达式的结果无影响)


||和|的区别同理 ||左边结果为true,则右边的表达式不执行

开发中常用的逻辑运算符为:

&&、||、!


位运算符:
&、|、^、~
<<、>>、>>>


最有效率的2*8的运算

2 << 3

注意:
当&、|左右连boolean类型的表达式时是逻辑运算符
当&、|左右连数值时是位运算符

面试题:
short s = 1;  s = s+1;
short s = 1;  s += 1;
上面两行代码有没有问题,如果有,请问是哪里有问题?

解答:
第一行有问题,编译报错:可能损失精度。因为默认转换,
short型数据在运算时默认先转换为int型,运算完成后赋值时int赋值给short就可能损失精度。

第二行,扩展的赋值运算符其实隐含了一个强制类型转换。

s += 1; 不是等价于s = s+1;而是等价于s = (s的数据类型)(s+1);即隐含的强制类型转换。

两个数值的互换

方法一:
第三方变量(开发使用)
int c = a;
a = b;
b = c;

方法二:
位异或(面试用)
左边a b a  右边a ^ b
a = a^b; 
b = a^b;  //a^b^b = a
a = a^b;  //a^b^a = b

方法三:
变量相加的做法:
a = a + b;
b = a - b;
a = a - b;

方法四:
b = (a+b) - (a = b);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值