在java的基础面试题中肯定有这个问题:
&和&&的区别?
这个问题很好回答,核心思想就是一个不短路一个短路的问题。
首先说下&,
1、它可以表示二进制中的位运算
分析:二元操作符,操作两个二进制数据;两个二进制数最低位对齐,只有当两个对位数都是1时才为1,否则为0
大学时,老师肯定讲过二进制,(实际开发中还没有使用过)
2、逻辑判断
要求运算符左右两端的布尔值都是true整个表达式的值才是true,但是它不存在短路功能。
即使i==2是false,但是还是执行了i++操作。
再来看下&&它就好说了,就是有短路功能
只要i==2不符合,后面直接不执行了。我们在实际开发中大多数使用的都是&&很少碰见有使用&的。说的这里,就说下实际项目中的注意事项吧。
一定要先去判断为不为null,再去判断字符串(实际开发真有人这么写,一定注意下)
更不能使用&。这样在面试时,被问到这个问题,想想我这里的代码实例,应该就很好回答了吧。