Я прочитал исходный код JDK о ConcurrentHashMap.
Но следующий код меня смутил:
public boolean isEmpty() {
final Segment<K,V>[] segments = this.segments;
...
}
Мой вопрос:
"this.segments" объявлено:
final Segment<K,V>[] segments;
Итак, здесь, в начале метода, объявленного ссылкой на тот же тип, укажите на ту же память.
Почему автор написал это так? Почему они не использовали this.segments напрямую? Есть ли какая-то причина?