网站推广广告公司,网站型销售怎么做,国家企业信用系统公示查询官网,wordpress设置标题关键词1、饿汉式 ①实现#xff1a;在类加载的时候就初始化实例 ②优点#xff1a;线程安全 ③缺点#xff1a;实例在类加载的时候创建#xff0c;可能会浪费资源
//饿汉式
public class EagerSingleton{private EagerSingleton(){} //私有构造方法private static EagerSingle… 1、饿汉式 ①实现在类加载的时候就初始化实例 ②优点线程安全 ③缺点实例在类加载的时候创建可能会浪费资源
//饿汉式
public class EagerSingleton{private EagerSingleton(){} //私有构造方法private static EagerSingleton instance new EagerSingleton();public static EagerSingleton getInstance(){return instance;}} 2、懒汉式 ①实现在首次获取实例的时候再创建实例 ②优点延迟加载节省资源 ③缺点线程不安全
public class LazySingleton{private LazySingleton(){} // 私有构造方法private static LazySingleton instance;public static LazySingleton getInstance(){if(instance ! null){instance new LazySingleton();}return instance;}} 3、双重检查锁 ①实现通过双重检查加锁volatile方式实现 ②优点线程安全 ③缺点稍微复杂
public class DoubleCheckedSingleton{private DoubleCheckedSingleton(){}private static volatile DoubleCheckedSingleton instance;public static DoubleCheckedSingleton getInstance(){if(instance ! null){sychronized (DoubleCheckedSingleton.class){if(instance ! null){instance new DoubleCheckedSingleton();}}}return instance;}} 4、静态内部类 ①实现静态内部类创建示例 ②优点线程安全 ③缺点无法通过参数构造实例
public class InnerClassSingleton{private InnerClassSingleton(){}private static class SingletonHolder{private static final InnerClassSingleton instance new InnerClassSingleton();}public static InnerClassSingleton getInstance(){return SingletonHolder.instance;}
} 5、枚举 ①实现通过枚举类型天然的单例特性实现 ②优点线程安全、代码简洁、防止反射和序列化破坏单例 ③缺点属于饿汉式会浪费资源
public emun EnumSingleton{INSTANCE;
} Runtime类就是通过饿汉式的方式实现的单例模式