第二章 资源加载 单例模式

作者: Xcdf | 来源:发表于2019-01-15 16:03 被阅读2次

简书 许乐
转载请注明原创出处,谢谢!

  在整个系统中,单例类只有一个实例对象,需要自行完成实例化,并且始终对外提供同一实例对象。单例模式只允许创建一个对象,从而避免了频繁的创建对象,比较节省内存资源,减少了GC次数,加快对象访问速度。如数据库连接池、应用配置等一般都是单例。

静态内部类的写法

public class SingleTon{

 private SingleTon(){}  //构造器私有化
 
 //私有的静态内部类,该静态内部类只会在newInstance()方法中被使用
 private static class SingleTonHoler{
   //静态字段
   static SingleTon INSTANCE = new SingleTon();
 }

 public static SingleTon getInstance(){
   return SingleTonHoler.INSTANCE;  // 访问静态内部类的静态字段
 }

}

  Java 类加载机制:当第一次访问类中的静态字段时(即调用getstatic或setstatic字节码指令时)会触发类加载操作,并且同一个类只被加载一次,类加载过程中,由类加载器负责加锁,从而保证线程安全。相比于双重检查锁的写法,更加简洁明了,也更加不容易出错。

问题:为什么使用单例模式而不用静态方法?
  静态内部类的单例模式是基于静态方法(类)来实现的。

相关文章

  • 设计模式--单例模式

    单例模式概述 单例模式实现方式 为什么要使用单例模式 单例模式实现方式 饿汉式 类加载后就会将对象加载到内存中,保...

  • Java线程安全的单例模式

    简单的单例模式(饿汉模式) 程序代码加载时,单例即初始化,加重系统负载.未实现懒加载 懒加载的单例模式 双锁延迟加...

  • 第二章 资源加载 单例模式

    简书 许乐转载请注明原创出处,谢谢!   在整个系统中,单例类只有一个实例对象,需要自行完成实例化,并且始终对外提...

  • 面试题汇总(设计模式)

    单例模式 参考:漫画:什么是单例模式?单例模式的七种写法 1. 饿汉式 类加载较慢,但获取对象的速度快 基于类加载...

  • 技术文章收集

    单例模式Java 类加载静态类加载时机

  • 单例模式

    单例模式的实现: 单例设计模式分类两种: -饿汉式:类加载就会导致该单实例对象被创建 -懒汉式:类加载不会导致该单...

  • 单例模式

    单例,全局只有一个实例 单例模式可以分为懒汉式和饿汉式: 懒汉式单例模式:在类加载时不初始化。 饿汉式单例模式:在...

  • Java ClassLoader机制(源码级别) —从内部类单

    内部类单例是种很好的单例模式,利用ClassLoader 线程安全的加载模式 为了更好的理解类的加载机制,我们来深...

  • 设计模式-单例模式(二)

    单例模式,目标就是在JVM内创建线程安全的单个实例.用途很多,比如加载资源配置文件.在Java中实现单例的方法有很...

  • 2022年3月Android面试题,包含vipkid,新氧,国美

    内存泄露 Looper,ThreadLocal 加载长图 jvm 类加载 单例模式,工厂模式,建造者模式 url输...

网友评论

    本文标题:第二章 资源加载 单例模式

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