当声明一个final成员时,必须在构造函数退出前设置它的值
final类型的成员变量的值,包括那些用final引用指向的collections的对象,是读线程安全而无需使用synchronization的
1,恶汉 线程安全 效率低
2,饱汉 线程安全 效率低
3,synchronized放到方法内提升效率
volatile保证多线程instance变量可见性(进入synchronized二次判空)
原文:https://www.cnblogs.com/xingminghui111/p/13126335.html