javase基础语法篇之运算符

运算符 & 和 &&, | 和|| 的区别

& 按位与 操作

| 按位或 操作

&&, || 短路运算符,在逻辑判断中常见

& 和 && 都可以实现 和 这个功能
区别:& 两边都运算,而 && 先算 && 左侧,若左侧为false,那么右侧就不运算,判断语句中推荐使用 &&,效率跟高.

| 和 || 和上面类似
区别: || 只要满足第一个条件,后面的条件就不在判断,而 | 要对所有的条件进行判断

把&& 和 || 称之为短路运算符
  • 用最有效率的方法计算2乘以8
原理: 将一个数左移n位,相当于乘以2的n次方,位运算是CPU直接支持的,所以效率高.
答案: 2<<3

2*2的3次方

常见的JDK源码里面HashMap的默认容量16
static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16

直接二进制操作,表示1左移4位,变成1000,转为10进制也就是16

补充知识 >>> 进制的转换算法?

讲解异或运算在面试中的考查点和分析

  • 考点:计算机基础运算知识
  • 写个方法,传递连个非0的Int数值进去,实现变量交换的方式,有几种方式?
    方式一:
      public static void main(String[] args) {
        swap(31, 40);
    }
    
    public static void swap(int a, int b) {
        System.out.printf("a=%d,b=%d", a, b);
        a = a + b;
        b = a - b;
        a = a - b;
        System.out.printf("\na=%d,b=%d", a, b);
    }
    
    a=31,b=40
    a=40,b=31
    
    方式二:异或运算(一个数与另一个数异或两次是其本身,一个数和自身异或 结果是0)
     public static void swap(int a, int b) {
        System.out.printf("a=%d,b=%d", a, b);
        a = a ^ b;  //   a1 = a^b
        b = b ^ a;  //   b = b^a^b
        a = a ^ b;  //	  a= a1^b = a^b^a
        System.out.printf("\na=%d,b=%d", a, b);
    }
    
    a=31,b=40
    a=40,b=31
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值