网站做优化有什么好处,网站建设要用H5吗,蓝海国际版网站建设,国外永久浏览器单例模式作为23中设计模式中最基础的设计模式#xff0c;一般实现方式为 ①私有化构造方法 ②提供一个获取对象的静态方法 除此之外#xff0c;实现单例模式的方法还有很多种#xff0c;这篇文章主要介绍实现单例模式的几种方法。 目录
一、懒汉式单例
二、懒汉式单例优化… 单例模式作为23中设计模式中最基础的设计模式一般实现方式为 ①私有化构造方法 ②提供一个获取对象的静态方法 除此之外实现单例模式的方法还有很多种这篇文章主要介绍实现单例模式的几种方法。 目录
一、懒汉式单例
二、懒汉式单例优化双重检测锁
三、饿汉式单例
四、静态内部类实现的饿汉式单例
五、枚举实现饿汉式单例 一、懒汉式单例
package design.singleton;import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;/*** 懒汉式单例*/
public class LazySingleton {private staticLazySingleton instance;private LazySingleton() { }/*** 普通懒汉式单例*/public static LazySingleton getInstance() {if (instance null) {instance new LazySingleton();}return instance;}} 二、懒汉式单例优化双重检测锁
第一种方式的代码在多线程下存在并发问题
package design.singleton;/*** 双重检测锁的懒汉式单例*/
public class LazySingleton {private static volatile LazySingleton instance;private LazySingleton() { }/*** 双重检测锁的懒汉单例* return LazySingleton*/public static LazySingleton getInstance() {if (instance null) {synchronized (LazySingleton.class) {if (instance null) {instance new LazySingleton();}}}return instance;}} 三、饿汉式单例
package design.singleton;/*** 饿汉式单例*/
public class EagerSingleton {private static final EagerSingleton instance;static {instance new EagerSingleton();}private EagerSingleton() { }public static EagerSingleton getInstance() {return instance;}} 四、静态内部类实现的饿汉式单例
package design.singleton;/*** 静态内部类的懒汉式单例* author heyunlin* version 1.0*/
public class InnerClassSingleton {private static class StaticInnerClassSingleton {private static final StaticInnerClassSingleton singleton new StaticInnerClassSingleton();}private InnerClassSingleton() {throw new RuntimeException();}public static StaticInnerClassSingleton getInstance() {return StaticInnerClassSingleton.singleton;}} 五、枚举实现饿汉式单例
package design.singleton;/*** 枚举实现的单例模式* author heyunlin* version 1.0*/
public enum EnumSingleton {Singleton;}