根据此博客文章https://shipilev.net/blog/2014/safe-public-
construction/甚至
final在构造函数中写入一个属性也足以实现安全的初始化(因此,您的对象将始终被安全地发布)。并且
capacity属性声明为
final。
简而言之,我们在以下三种情况下会产生障碍:
最后一个领域是这样写的。注意,我们并不关心实际写入哪个字段,我们在退出(initializer)方法之前无条件地发出了屏障。这意味着,如果您至少有一个final字段写操作,则final字段语义将扩展到构造函数中编写的所有其他字段。



