synchronized 블록을 보고합니다.
문자열 리터럴은 억류(intern)되며 Character, Boolean 및 Number 리터럴은 캐시에서 할당될 수 있습니다.
이로 인해 동일한 리터럴로 초기화된 객체를 사용하는 시스템의 다른 부분이 실제로는 동일한 객체에 대한 참조를 보유할 수 있습니다. 이때 lock 객체가 private으로 간주될 경우 예기치 않은 교착 상태가 발생할 수 있습니다.
예:
class Main {
final String mutex = "Mutex";
void method() {
synchronized (mutex) {
}
}
}
가능한 모든 리터럴에 대해 경고 옵션을 사용하여 String, Character, Boolean 및 Number 객체의 동기화를 보고합니다.