1 防止子类继承,重写
2 需要加入object readResovle()这个方法
3 设置私有防止多个重复调用构造参数 ,,反射可以创建。
4 加了static修饰的变量是在类加载时执行的
5 可以提供更多的变化
- 防止指令重排序
- 这样减少synchronized的范围,增加性能
- 如果刚开始,两个线程同时进入synchronized,一个阻塞,一个运行。
运行完后,INSTANCE已经赋值,并且主存已经存在。阻塞再运行,需要判断一下,不然会创建多个对象
1.懒汉式。getInstance在调用时,我们才会类加载LazyHolder这个类,才会加载这个INSTANCE
2.没有