博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java单例模式之最优解分析【为何说是最优解】
阅读量:5981 次
发布时间:2019-06-20

本文共 874 字,大约阅读时间需要 2 分钟。

代码如下

/** *  * @ClassName: SingletionStaticInner * @Description: TODO【单例模式之最优解】 * @author shundong.wu * @date 2019年2月12日 *  线程安全 */class SingletonStaticInner {  private SingletonStaticInner() {  }  private static class SingletonInner {    private static SingletonStaticInner singletonStaticInner = new SingletonStaticInner();  }  public static SingletonStaticInner getInstance() {    try {     Thread.sleep(1000);    } catch (InterruptedException e) {     e.printStackTrace();    }  return SingletonInner.singletonStaticInner;  }}

  

  

为何说是最优解呢? 

可以看到使用这种方式我们没有显式的进行任何同步操作,那他是如何保证线程安全呢?和饿汉模式一样,是靠JVM保证类的静态成员只能被加载一次的特点,这样就从JVM层面保证了只会有一个实例对象。那么问题来了,这种方式和饿汉模式又有什么区别呢?不也是立即加载么?实则不然,加载一个类时,其内部类不会同时被加载。一个类被加载,当且仅当其某个静态成员(静态域、构造器、静态方法等)被调用时发生。

——————————————————新年快乐——————————————

来吧 来吧 作者学粗才浅 尽管骚扰【邮箱 shundong106@icloud.com】

转载于:https://www.cnblogs.com/shundong106/p/10364367.html

你可能感兴趣的文章
Java 与 Netty 实现高性能高并发
查看>>
SurfControl人工智能新突破 领跑反垃圾邮件
查看>>
一个动态ACL的案例
查看>>
openstack 之 windows server 2008镜像制作
查看>>
VI快捷键攻略
查看>>
漫谈几种反编译对抗技术
查看>>
CMD 修改Host文件 BAT
查看>>
android幻灯片效果实现-Gallery
查看>>
实现Instagram的Material Design概念设计
查看>>
CentOS 6.x 快速安装L2TP ***
查看>>
一篇文章能够看懂基础源代码之JAVA篇
查看>>
Goldengate双向复制配置
查看>>
Oracle官方内部MAA教程
查看>>
DNS相关配置
查看>>
miniWindbg 功能
查看>>
CF772E Verifying Kingdom
查看>>
第二次冲刺 第七天
查看>>
测试驱动开发
查看>>
【Udacity】线性回归方程 Regression
查看>>
轻松实现远程批量拷贝文件脚本(女学生作品)
查看>>