1. 构造器私有化——防止直接new对象
    2. 类的内部创建对象
    3. 向外暴露一个静态的公有方法

    饿汉式:
    class SingleTon01{
    private SingleTon01(){}

    private static SingleTon01 instance = new SingleTon01();

    public static SingleTon01 getInstance(){
    return instance;
    }
    }

    懒汉式:
    class SingleTon02{
    private SingleTon02(){}

    private static SingleTon02 instance;

    public static SingleTon02 getInstance(){
    if(intance == null){
    intance = new SingleTon02();
    }
    return instance;
    }
    }
    区别:

    1. 二者最主要区别在于创建对象的时机不同:饿汉式是在类加载时就创建了对象实例,而懒汉式是在使用时才创建
    2. 饿汉式不存在线程安全问题,懒汉式存在线程安全问题(多个线程同时调用方法)
    3. 饿汉式存在资源浪费的可能:程序员只使用类中其他成员时,也会创建对象,对象就被浪费了;而懒汉式是使用时才创建,就不存在这个问题
    4. javaSE标准类中,java.lang.Runtime就是经典的单例模式