逻辑与&&和位与&的一点区别说明
来源:互联网 发布:淘宝买家一颗五星 编辑:程序博客网 时间:2024/06/05 09:06
我们都知道位运算除了可以对二进制数进行操作之外,还可以对布尔型值进行运算。如我们这里要说的&运算:
除了1& 1 为1外,其他的都是0,还有true&true为true外,其他的都为false,逻辑与&&和位与&对布尔型值得操作很相似。
这里特别指出他们的不同之处:
有如下的code
打印的结果如下:
这样很显然两者的区别就一目了然了。
&&运算一旦发现它的左操作数为false时,就不会再去执行它右操作数。即前面的++iNum根本就没有做任何的操作
编译能过,而
出现空指针异常的错误。
除了1& 1 为1外,其他的都是0,还有true&true为true外,其他的都为false,逻辑与&&和位与&对布尔型值得操作很相似。
这里特别指出他们的不同之处:
有如下的code
- int iNum = 0;
- int age = 60;
- result = age > 64 && ++iNum < 100;
- System.out.println(result);
- System.out.println(iNum);
- result = age > 64 & ++iNum < 100;
- System.out.println(result);
- System.out.println(iNum);
打印的结果如下:
- false
- 0
- false
- 1
这样很显然两者的区别就一目了然了。
&&运算一旦发现它的左操作数为false时,就不会再去执行它右操作数。即前面的++iNum根本就没有做任何的操作
而&这种运算符,在执行与运算之前它会计算所有操作数的值,即后面的++iNum是被执行过了的。
于是就有
- String s = null;
- boolean result = s!= null && s.length() > 5;
编译能过,而
- result = s!= null & s.length() > 5;
出现空指针异常的错误。
同样的规则适用于||和|
0 0
- 逻辑与&&和位与&的一点区别说明
- 逻辑与&&和位与&的一点区别说明
- JAVA基础 - 逻辑与&&和按位与&的区别
- Java基础:逻辑与或和按位与或的区别
- 逻辑与和短路与的区别
- 逻辑与和短路与的区别
- 位操作与逻辑操作符号的区别
- 逻辑或与按位或的区别
- 逻辑与(&和&&)运算符的区别
- 逻辑与和条件与的区别(&&和&)
- (&& ) 按位与 和 (&) 逻辑与有什么区别?
- Java中逻辑与和简洁与(&和&&)逻辑或和简洁或(|和||)的区别
- &&(短路与)和&(逻辑与)的区别
- Java中,逻辑与& 和短路与&& 的区别
- 32位和64位Windows的区别与选择
- and 和&&都表示逻辑与,他们的区别是什么?
- 物理驱动器 和逻辑分区的区别与联系
- 数据结构的逻辑结构和物理结构区别与联系
- [阿里云]服务器申请成功
- break语句/Continue语句的新认识
- as3知识结构
- [阿里云]在阿里云服务器上,安装Tomcat
- PHP知识结构
- 逻辑与&&和位与&的一点区别说明
- spring配置中的tx:advice标签简介
- JAVA mail初探
- maven添加非官方jar包到本地库(maven: install an external jar into local maven repository
- 20140721
- Cairo初探
- 7.18-2014新生暑假个人排位赛03
- hihoCoder:KMP
- JDK设计模式