实例化方面
懒汉式:默认不会实例化,外部什么时候调用什么时候new。
饿汉式:在类加载的时候就实例化,并且创建单例对象。
线程安全方面
饿汉式:初始化时间在线程创建之前,所以天生线程安全。
懒汉式:天生线程不安全。可以使用同步锁来避免这种情况发生。
执行效率方面
饿汉式:没有加任何的锁,因此执行效率比较高。
懒汉式:一般使用都会加同步锁,效率比饿汉式差。
性能方面:
饿汉式:在类加载的时候就初始化,不管你是否使用,它都实例化了,所以会占据空间,浪费内存。
懒汉式:什么时候需要什么时候实例化,相对来说不浪费内存。