单例模式介绍和使用场景:
保证java应用程序中,一个类Class只有一个实例在,使用单例模式好处在于可以节省内存,节约资源,对于一般频繁创建和销毁对象的可以使用单例模式。
单例模式的几种实现方式:
1.饿汉式(线程安全,调用效率高,跟随项目启动加载,占用资源比较大,不能延迟加载。)
2.懒汉式(多线程下会有多个实例存在非线程安全,调用效率高,跟随项目启动加载,可以延迟加载。)
3.DCL双重锁判断机制,Double CheckLock实现单例(调用性能不高,可以延迟加载,利用synchronized锁和双重判断来验证实例是否存在。)
4.利用静态内部类实现单例模式(线程安全,调用效率高,项目启动时内部类不会被加载,所以支持延时加载减少系统资源的占用。)
5.Java中的枚举类enum也是单例,线程安全,调用效率高,不能延时加载,可以天然的防止反射和反序列化调用。