2의 거듭제곱으로 표현할 수 있는 상수 정수와 정수 값의 곱을 보고합니다. 이러한 표현식은 성능을 향상시키기 위해 오른쪽 또는 왼쪽 시프트 연산으로 대체할 수 있습니다.

최신 JVM(예: HotSpot 또는 OpenJ9)에서는 JIT 컴파일러가 이러한 최적화를 수행하기 때문에 이 검사가 적절하지 않습니다. 이 검사는 JIT 컴파일이 수행되지 않는 일부 임베디드 시스템에서만 유용할 수 있습니다.

예:


  int y = x * 4;

시프트 연산에 의한 곱셈이나 나눗셈을 대체하는 빠른 수정을 사용하는 것이 좋습니다.


  int y = x << 2;

이 옵션을 사용하여 해당 검사가 2의 거듭제곱으로 나누기도 보고하도록 합니다. 2의 거듭제곱 나누기를 시프트로 바꾸기는 음수에 적용되지 않습니다.