小小初识java(8)-运算符

  • &&和&之间的区别?

    • 相同点:&&和&都是逻辑的与,相当于汉文中并且的意思,需要前后两个条件都成立才能执行

    • 不同点:&&叫做逻辑的短路与,有短路特性

    • 短路特性:如果通过前面的条件可以得出最终的结果,后面的条件直接舍弃,不再判断

  • ||和|之间的区别?

  • 相同点:||和|都是逻辑的或,相当于汉文中或者的意思,需要前后一个条件成立就能执行

  • 不同点:||叫做逻辑的短路或,有短路特性

  • boolean  &&  boolean
       true        判断
       false       短路(停止继续判断条件)
      
    boolean  ||  boolean
      true         短路(停止继续判断条件)
      false        判断

    在某些情况下可以取代%

    • 某些情况:当拿着一个正数m % 上2的n次方数的时候 ------> m%(2的n次方)

    • 结果等价于

    • 拿着这个正数 & 上2的n次方数-1 的结果 ------->m&((2的n次方)-1) 【效率高

    • 27	%2	%4	%8	%16....2^(n)   //27分别取余2,4,8,16(2,4,8,16是2的n次方)
        		 1   3   3   11
        27	&1	&3	&7	&15....&2^(n)-1 //27分别与1,3,7,15
        		 1	 3   3   11
      
       综上所述,27分别取余2,4,8,16的结果与27分别与1,3,7,15的结果相同,但是&的效率更高
            
      System.out.println(100 % 8);  //4
      System.out.println(100 & 7);  //4  
    • [>> << >>>] 位[指二进制位]移运算符【<<相当于乘以 >>相当于除以

    • <<相当于乘以   >>相当于除以
        	移动多少位相当于乘以/除以2的几次方数
        
      	*2		*4		*8		*16.... *2(n)
          <<1		<<2		<<3		<<4.... <<n
           
          /2		/4		/8		/16...../2(n)
          >>1		>>2		>>3		>>4.....>>n
            
          注意:当乘或除2的n次方时,可以采用<<或>>来代替,而且<<或>>的效率高
          
      >>和>>>之间的区别?
        	>>叫做有符号右移 移动之后空缺的高位看原本的符号位
        	01001011 >> 2    高位为0,所以下面空缺位置补0
        	00010010
      	
          10001010  >> 3   高位为1,所以下面空缺位置补1
        	11110001
        
        	>>>叫做无符号右移 移动之后空缺的高位补0 【无论高位为几,空缺位置都补0】
        	01001011 >>> 2
        	00010010
        
        	10001010 >>> 3
        	00010001

      instanceof:判断左边的对象是否属于右边的类型【对象 instanceof 类】

    • public class e32705{
      	public static void main(String[] args){
      		Bird b = new Bird();
      		Person p = new Person();
      		System.out.println(b.equals(p));
      	}
      }
      class Bird{
      	@Override
      	public boolean equals(Object obj){
      		if(obj instanceof Bird) return true;
      		return false;
      	}
      }
      class Person{}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

探索技术前行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值