小编HUA*_* Di的帖子

为什么JDK源代码采用`volatile`实例的`final`副本

我阅读了JDK关于ConcurrentHashMap的源代码.

但以下代码让我感到困惑:

public boolean isEmpty() {
    final Segment<K,V>[] segments = this.segments;
    ...
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

声明"this.segments":

final Segment<K,V>[] segments;
Run Code Online (Sandbox Code Playgroud)

所以,在这里,在方法的开头,声明了一个相同的类型引用,指向相同的内存.

为什么作者这样写?他们为什么不直接使用this.segments?有什么理由吗?

java

74
推荐指数
2
解决办法
2366
查看次数

标签 统计

java ×1