美文网首页
关于两种单例写法的探讨

关于两种单例写法的探讨

作者: 李翾 | 来源:发表于2017-11-24 11:37 被阅读0次

第一种 :

class Single {
private static final Single ourInstance = new Single();

public String name = "ltf";
static Single getInstance() {
    return ourInstance;
}

private Single() {
}

}

第二种:

public class SingleHolder {

private SingleHolder(){

}

private static class SingleInnerHolder{

    private static SingleHolder singleHolder = new SingleHolder();
}

第一种在Android Studio里面,创建单例的时候,谷歌是推荐我们这种写法。
第二种叫Lazy initialization holder class,Lazy在哪儿,我对这个方法的疑惑是静态内部类的加载时间,百度到一番话:“静态内部类和非静态内部类一样,都是在被调用时才会被加载”,如果这个句话真,那么这种单例写法实现懒加载就成立。当然,“静态内部类和非静态内部类一样,都是在被调用时才会被加载”这句话是别人论证出来的,那么我先认为他是对的,在工作中去验证。

后续:

还有第三种叫double-checked locking,
private static volatile Something instance = null;

public Something getInstance() {
if (instance == null) {
synchronized (this) {
if (instance == null)
instance = new Something();
}
}
return instance;
}
参阅资料:http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html#volatile

相关文章

  • 关于两种单例写法的探讨

    第一种 : class Single {private static final Single ourInstan...

  • iOS-两种单例模式的实现

    单例模式是开发中最常用的写法之一,创建一个单例很多办法,iOS的单例模式有两种官方写法,如下: 不使用GCD 某些...

  • 中心事件模型、统一输入管理

    单例基类 有两种单例的写法 不需要继承 MonoBehaviour 的 需要继承 MonoBehaviour 的 ...

  • 单例的2种写法

    单例模式是iOS开发中最常用的设计模式,iOS的单例模式有两种官方写法,如下: 1,常用写法 import "Se...

  • iOS 单例模式

    关于单例模式的详解,看完这几篇,就完全了然了。iOS 单例模式iOS中的单例模式iOS单例的写法

  • 设计模式(五)单例模式

    引言 Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍两种:懒汉式单例、饿汉式单例 0...

  • 2019-08-27 java设计模式之单例模式

    1.单例模式概述 java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍两种:懒汉式单例、饿...

  • 单例模式的写法以及探讨

    单例模式有很多种方法,有些已经过时但是很多博客还在不断的当做单例标准放出来。有些实现很优雅,但大家平时都没有注意到...

  • OC和Swift单例的写法

    一 、OC中单例的写法:1.普通单例的写法 2. 利用多线程来写单例 #pragma mark --- 普通单例写...

  • 设计模式之单例模式详解

    设计模式之单例模式详解 单例模式写法大全,也许有你不知道的写法 导航 引言 什么是单例? 单例模式作用 单例模式的...

网友评论

      本文标题:关于两种单例写法的探讨

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