疑问句做网站标题,wordpress 显示一篇,梅州网,网站建设服务合同协议文章目录 单例模式3、懒汉式 - 懒汉式非线程安全4、饿汉式 - 线程安全5、懒汉式和饿汉式区别6、双重检查锁定7、应用场景 来讲讲java单例 单例模式
java中单例模式是一种常见的设计模式#xff0c;单例模式的写法有好几种#xff0c;这里主要介绍三种#xff1a;懒汉式单例… 文章目录 单例模式3、懒汉式 - 懒汉式非线程安全4、饿汉式 - 线程安全5、懒汉式和饿汉式区别6、双重检查锁定7、应用场景 来讲讲java单例 单例模式
java中单例模式是一种常见的设计模式单例模式的写法有好几种这里主要介绍三种懒汉式单例、饿汉式单例、双重检查锁定 1、单例模式有以下特点 a、单例类只能有一个实例。 b、单例类必须自己创建自己的唯一实例。 c、单例类必须给所有其他对象提供这一实例。 2、代码特点 a、私有静态变量 b、私有构造方法 c、公有的静态访问方法
3、懒汉式 - 懒汉式非线程安全
public class Singleton {private Singleton() {}private static Singleton singlenull;//静态工厂方法 public static Singleton getInstance() {if (single null) { single new Singleton();} return single;}
}4、饿汉式 - 线程安全 //饿汉式单例类.在类初始化时已经自行实例化 public class Singleton1 {private Singleton1() {}private static final Singleton1 single new Singleton1();//静态工厂方法 public static Singleton1 getInstance() {return single;}}
饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用以后不再改变所以天生是线程安全的。
5、懒汉式和饿汉式区别 6、双重检查锁定
public static Singleton getInstance() {if (singleton null) { synchronized (Singleton.class) { if (singleton null) { singleton new Singleton(); } } } return singleton; }7、应用场景
a、需要频繁创建的一些类使用单例可以降低系统的内存压力减少 GC。 a、某类只要求生成一个对象的时候如一个班中的班长等。 b、某些类创建实例时占用资源较多或实例化耗时较长且经常使用。 c、某类需要频繁实例化而创建的对象又频繁被销毁的时候如多线程的线程池、网络连接池等。 e、频繁访问数据库或文件的对象。