&、&&和|、||的区别

按位与:a&b是把a和b都转换成二进制数然后再进行与的运算;
逻辑与:a&&就是当且仅当两个操作数均为true时,其结果才为true;只要有一个为零,a&&b就为零。

&和&&的区别

&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式。

&还可以用作按位与的运算符,两个表达式的值按二进制位展开,对应的位(bit)按值进行“与”运算,结果保留在该位上

(1)短路功能测试:

public class AndTest {
    
    public static void main(String[] args) {
        String str = null;
        if(str!=null&str.equals("")) {
            System.out.println("true");
        }
    }
    
}

当为&,会报错java.lang.NullPoinerException,即空指针错误;
当为&&,则不会报错

(2)按位与:
运算规则:0&0=0;0&1=0;1&0=0;1&1=1;
即:两位同时为"1",结果才为"1",否则为0例如:3&5即0000 0011 & 000 0101 = 0000 0001;因此,3&5的值得1。

public class AndTest {
    
    public static void main(String[] args) {
        
        int a = 3&5;
        
        System.out.println("a="+a);
        
    }
    
}

结果a=1.

|和||的区别

|和||的区别同理,都可以作为逻辑或运算符;
|还可以作为按位或的运算符,运算规则与按位与同理;
||同样有类似短路的功能,即第一个条件若为true,则不计算后面的表达式。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 首先来看两个概念:按位与:a&b是把a和b都转换成二进制数然后再进行与的运算;逻辑与:a&&b就是当且仅当两个操作...
    RaphetS阅读 24,951评论 1 12
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,912评论 6 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,818评论 19 139
  • 很多时候我们会对某个语言的某个特性争论不休,通常都只是因为我们不知道它是怎么实现的。其实解决这个疑惑的最好的方法,...
    DarkSpy13阅读 4,294评论 0 2
  • 有一只螃蟹,到傍晚的时候,躲进了水里。他遇见了乌龟,乌龟问外面发生了什么事?螃蟹说,外面有人捉螃蟹,乌龟就,跑出去...
    文一米阅读 2,472评论 1 1

友情链接更多精彩内容