登记式单例控制线程安全和内存控制

首先需要了解以下几个知识点:

1.登记式单例

2.类加载

3.静态内部类

登记式单例的例子如下:

登记式单例控制线程安全和内存控制

首先因为静态内部类只有在使用的时候才会被加载,所以就解决了饿汉式的那种在类加载就实例化变量到内存,然后当该变量没有用到造成资源浪费的结果,即控制内存。

然后一开始我觉得这个跟懒汉式一样会造成线程不安全,会同时创建多个对象,后来看了类加载的代码发现在加载class文件的时候已经加了锁自然不会重复创建多个静态变量登记式单例控制线程安全和内存控制