Java的逻辑运算 && 和 & 有着不同的运行过程。例如:

if(i!=0 && value/i >0)当i=0是没有抛出异常的,而使用if(i!=0 & value/i >0),当i=0时会抛出异常。

原因是:&&运算符进行短路运算,也即当A为假时,无论B是什么,&&运算的结果都是假的。而&则不同,它必须对两边进行计算才能得出最终的结果。