简述Java内存模型的由来、概念及语义(二)
。
复制代码
class A
{
final Map map=null;
public void A()
{
map = new HashMap();
map.put("key1","value1");
}
}
复制代码
其他线程在引用A的对象之前,JMM保证A的final变量已经被其构造函数完全初始化。也就是说,final变量的完全初始化 happends-before 其他线程对该对象的引用。即,final变量在构造函数中的初始化是线程安全的。