单例设计模式

 单例保证一个对象JVM中只能有一个实例,常见单例 懒汉式、饿汉式

懒汉式

public class Person{

private static Person person;

private Person() {

}

public static Person getPerson() {

if(person==null) {

return new Person();

}

return person;

}

}


恶汉式

public class Person{

private static final Person person=new Person();

private Person() {

}

public static Person getPerson() {

return person;

}


懒汉式线程不安全,若想要线程安全可以改为(加synchronized )

public class Person{

private static Person person;

private Person() {

}

public static synchronized Person getPerson() {

if(person==null) {

return new Person();

}

return person;

}

}

第二种写法,这种效率比上面这种高

public class Person{

private static Person person;

private Person() {

}

public static Person getPerson() {

if(person==null) {

synchronized (Person.class) {

if(person==null) {

return new Person();

}

}

}

return person;

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.懒汉式 线程不安全,当有多个线程并行调用getInstance()的时候,就会创建多个实例。也就是说在多线程下...
    少一点阅读 1,118评论 0 0
  • 一、使用场景 单例设计模式是应用最广的设计模式,例如:当创建一个对象需要消耗过多的资源,如要访问IO或数据库等资源...
    执着的瓶子阅读 1,891评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,314评论 19 139
  • 饿汉式 懒汉式之方法同步 懒汉式之双重检查 静态内部类
    最美时光在路上阅读 799评论 0 0
  • 文/李秀峰(新韵) 柴米油茶酱醋盐, 奔波终日不得闲。 寒来暑往年年复, 又到新春燕呢喃。 ——2017...
    盘锦西山阅读 4,916评论 0 1