一、饿汉式在getInstance()之前,类已经创建好了。设置私有的构造函数,使用静态final变量创建对象,只提供一个方法获取对象,其他类无法创建该类对象。 反射破坏单例:在构造函数里判断当前实例是否为null,如果不为null,则抛异常;序列化破坏单例:重写readResolve()方法,返回单例模式的对象;unsafe破坏单例:无预防方法。 二、枚举饿汉式 枚举类型不能通过反射创建对象;不能序列化破坏单例;unsafe无法预防。