@Test
void operator() {
assertTrue(logicOperator() || logicOperator());
assertTrue(bitOperator() | bitOperator());
}
boolean logicOperator() {
System.out.println("logic");
return true;
}
boolean bitOperator() {
System.out.println("bit");
return true;
}
logic
bit
bit
출력된 내용을 보면 보면 비트 연산자는 결과에 영향을 주지 않아도 모두 실행했고 논리연산자는 결과에 영향을 주지 않는다면 실행되지 않아서 한 번만 실행했다.
비트 연산자는 or 연산자를 통해서 비트를 비교할 때 논리 연산자처럼 참과 거짓으로 나누어지는 것이 아니라 비트의 자리마다 비교하여 결과를 반환하기 때문에 Short-circuit evaluation이 발생하지 않는 것으로 생각한다.