美文网首页
单例设计模式

单例设计模式

作者: HJJ_3c00 | 来源:发表于2018-06-15 14:26 被阅读0次

     单例保证一个对象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;

    }

    }

    相关文章

      网友评论

          本文标题:单例设计模式

          本文链接:https://www.haomeiwen.com/subject/jnjkeftx.html