将 构造函数 私有化

    饿汉式(线程安全)
    使用初始化语句 自己创建自己一个实例
    懒汉式(线程不安全)
    用到的时候进行初始化,用一个静态的方法 返回实例
    为了线程安全 可以用 Synchronized 方法 修饰 返回实例的方法
    可以优化, 只有尚未实例化的时候 才 Synchronized 修饰 对象(sun.class),不然实例化后每一次都要加锁 浪费
    这就是懒加载模式的“双检锁”

    1. public static Sun getInstance(){
    2. if(null == sun){
    3. synchronized(Sun.class){
    4. sun = new Sun();
    5. }
    6. }
    7. return sun;
    8. }