Java学习笔记(二)

比较运算符

==  !=   >  >=  <  <=  instanceof

注意:比较运算符的结果都是boolean型,结果只有true或false

而instanceof用于检查是否是类的对象

例如 “Hello” instanceof String  结果是true


逻辑运算符

&    !    |   ^   &&     ||

逻辑运算符用于连接两个boolean类型的表达式

&:AND(与)

只要两边有一个为假时,结果为假

仅当两边都为真时,结果为真

|:OR(或)

只要两边有一个为真时,结果为真

仅当两边都为假时,结果为假

^:OR(异或)

当两边相同时,结果为假 如:true ^ true =false  false ^ false =false

当两边不同时,结果为真如:flase ^ true =truetrue ^ false =true

!:NOT(非)

非假为真,非真为假

&&:AND(短路与)

运算结果与 & 相同

运算过程不同:

& 无论两边结果如何,两边表达式均参加运算

&& 当左边的结果为假时,右边的表达式不参加运算,即跳过(短路)

||:OR(短路或)

运算结果与 | 相同

运算过程不同:

| 无论两边结果如何,两边表达式均参加运算

|| 当左边的结果为真时,右边的表达式不参加运算,即跳过(短路)


位运算符

&    |   ^   ~   >>>   >>    <<

位运算是直接对二进制进行运算

注意:位运算中0为假,1为真。按位对齐运算。

&:与运算

如 6 & 3 = 2

实际过程为

 0000-0000 0000-0000 0000-0000 0000-0110

     & 0000-0000 0000-0000 0000-0000 0000-0011 

     =  0000-0000 0000-0000 0000-0000 0000-0010   

     = 2

为了方便书写,可写成

   0110

&0011

=0010=2

|:或运算

特点:凡是有效位(1是有效位),全保留

如 6 | 3 = 7

   0110

|  0011

=0111=7

^:异或运算

特点:一个数异或同一个数两次,结果还是这个数。可用于加密解密。

如  6 ^ 3 =5

   0110

^ 0011

=0101 =5

  

  0101

^0011

=0110 =6


~:反码

即取反再加一

 ~6 = -7  即-7+1=-6

原码0000-0000 0000-0000 0000-0000 0000-0110

取反1111-1111 1111-1111 1111-1111 1111-1001

加一1111-1111 1111-1111 1111-1111 1111-1010

注:可参考java学习笔记(1)负数的二进制


<<:左移

相当于乘以2的倍数

如 3<<2=   意为3左移2位

     0000-0000 0000-0000 0000-0000 0000-0011

移位0000-0000 0000-0000 0000-0000 0000-1100 =3*2^2=12

即整体向左移位超出的舍去,低位缺位的补0

例:最有效率的计算2*8

2*8=2<<3=16

即位运算最有效率


>>:右移

相当于除以2的倍数

与左移同理,整体右移,超出的位舍去,高位缺位的补原来高位的值,即保证符号位存在


>>>:无符号右移

数据进行右移时,无论原高位是什么值,高位空位均补0

注意:移n位,就是对乘以或除以2的n次幂



补充例:交换变量a,b的值

方法一:

定义第三方变量c,开发时首选,可读性强

	int c;
	c=a;	
	a=b;	
	b=c;
方法二:

注意当两个数过大时,超出int范围,会发生强制转换,造成数据丢失

	a=a+b;
	b=a-b;
	a=a-b;
方法三:

进行位运算,可读性差,往往用于面试

	a=a^b;
	b=a^b;
	a=a^b;
原理:一个数异或同一个数两次,结果还是这个数。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值