자바의 논리 연산자에는 &&, &, ||, |, ^, !가 있다. 이 중 &&와 &, ||와 |의 연산 결과는 똑같지만 jvm이 실행하는 방식이 다르다. && 연산자를 사용할 경우, 앞의 식의 거짓이면 뒤의 식은 실행하지 않는다. 앞의 식이 false이므로 뒤의 값은 확인할 필요가 없기 때문이다. 근데 & 연산자를 사용할 경우에는, 앞의 식이 false여도 뒤의 식까지 같이 실행한다. ||도 마찬가지로 앞의 식이 true이면 뒤의 식과 상관없이 true이므로 뒤의 식은 실행하지 않지만 | 연산자를 사용할 경우엔 앞의 식이 true여도 뒤의 식까지 같이 실행한다. 만약 뒤의 식에 수식 등이 들어갈 경우 수식에 증가, 감소되는 식이 있으면 실행이 되냐 안되냐에 따라 문제가 발생할 수 있으니 유의해야 한다.