次のコードスニペットを検討します。
Object bar1 = new ... ;
Object bar2 = new ... ;
Object foo = (either bar1 or bar2) ;
これで、プログラムのさまざまな時点でfooをbar1またはbar2にすることができます。同期(foo)が対応するbar1またはbar2をロックすることを確認したかっただけです。オブジェクトがJavaでコピーされないことを考えると、これは最も可能性の高いシナリオのようです。これは正しいです?