为什么 JDK 源代码会获取“易失性”实例的“最终”副本
2022-08-31 13:30:20
我阅读了JDK关于 ConcurrentHashMap 的源代码。
但是下面的代码让我感到困惑:
public boolean isEmpty() {
final Segment<K,V>[] segments = this.segments;
...
}
我的问题是:
“this.segments”声明:
final Segment<K,V>[] segments;
所以,这里,在方法的开头,声明了一个相同的类型引用,指向相同的内存。
作者为什么这样写呢?他们为什么不直接使用 this.segments?有什么原因吗?