为什么单例模式构造方法私有

public class Singleton  
{  
    private Singleton(){  
      
    }  
  
    private static Singleton instance = new Singleton();  
  
    private static Singleton getInstance(){  
        return instance; 
    }

        以上是饿汉式的单例模式写法,这里不是讨论单例的各种写法,主要讲下为什么单例模式的构造方法要定义为私有。

        在实际开发过程中,由于调用了一个单例模式,该单例的构造方法是public的。在调用时候,采用了Singleton singleton = new Singleton();调用,这样的结果就是导致不断的初始化Singleton类,内存很快会耗尽,应用速度变慢。所以,单例模式的构造方法最好定义private,并且通过Singleton.getInstance()调用。

         这个时候,最好采用性能调试工具加以分析,看哪个类实例最多。

你可能感兴趣的:(java常见问题总结)