-
&的作用有两个
- 第一个是按位与
- 第二个是逻辑与
&&的作用是短路的逻辑运算与
两者虽然都是表达式两边都为true整体才为true或false,但是区别还是蛮大的
&&之所以称为短路逻辑运算是因为如果表达式左边的为false,那么右边的它不会在运行.所以我们更常使用&&.
举栗子:
public void test1 (String x)
{
if (x != null & !x.equals(""))
System.out.println(x);
}
public void test2 (String x)
{
if (x != null && x.equals(""))
System.out.println(x);
}
//test1输出结果Exception in thread "main" java.lang.NullPointerException
//test2输出结果没有异常发生
所以我们x本身如果是null的用&&就不会在equlas(""),这样就不会产生空指针异常.
我们在很多应用场景都需要用&&,而且前后顺序不能替换.