&和&&都是逻辑运算符号,&&又叫短路运算符
区别如下
1 int i=1; 2 if(i==2 & i++==2){} //i==2为false,但i++==2还会继续比较,所以i++被执行 3 System.out.println(i);//i 打印出来为2 4 int j=1; 5 if(j==2 && j++==2){} //j==2为false,但j++==2不会继续比较,所以j++不被执行 6 System.out.println(j);//j打印出来为1
& 不管前面的条件是否正确,后面都执行
&& 前面条件正确时,才执行后面,不正确时,就不执行,就效率而言,这个更好