报告在用字面量初始化的对象上锁定的 synchronized 块。

字符串字面量是暂存的,CharacterBooleanNumber 字面量可以从缓存中分配。 正因为如此,可能系统的其他某些部分(使用通过相同字面量初始化的对象)实际上会包含对完全相同的对象的引用。 如果锁定对象被认为是 private 对象,这可能会产生意外的死锁情况。

示例:


  class Main {
    final String mutex = "Mutex";
    void method() {
      synchronized (mutex) {
      }
    }
  }

使用警告所有可能的字面量选项可以报告 StringCharacterBooleanNumber 对象的任何同步。