荒凉许久的博客.....今天就来写下&&与&之间的区别:
- &&、&均可以作为逻辑运算符,表示逻辑"且(and)",只有当所有判断均为true时才返回true,否则只有出现一个false则返回false。
- 其次&&还有短路的功能,这也是为什么叫做短路与的来源。“短路”,利用物理的常识也就是前方一旦有错误,后面一切免谈。也就是说在判断时,只要有false,后面的假如有类似于计数器之类的程序段或者可能抛出异常的程序段均不执行,也因此有可能会影响到程序的结果。例如:
//没有起到计数器的作用
if(str != null && i--!=0){
System.out.print("测试&&与&之间的区别");
}
//如果使用&&的话就不会出现异常
if(str != null & !str.equals(“”)){
System.out.print("测试&&与&之间的区别");
}
- 而&则还有位运算的功能;
当&两边均不是boolean类型的话则进行为运算,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位
例如:
0x31 & 0x0f的结果为0x01