`

延时加载的单例写法

 
阅读更多

/**

 * <strong>Lazy initialization holder class单例模式</strong> <br>

 * <ul>

 * <li>当getInstance方法第一次被调用的时候,它第一次读取SingletonHolder.instance,导致SingletonHolder类得到初始化;</li>

 * <li>而这个类在装载并被初始化的时候,会初始化它的静态域,从而创建Singleton的实例,由于是静态的域,因此只会在虚拟机装载类的时候初始化一次,并由虚拟机来保证它的线程安全性。</li>

 * <li>这个模式的优势在于,getInstance方法并没有被同步,并且只是执行一个域的访问,因此延迟初始化并没有增加任何访问成本。</li>

 * </ul>

 * 

 */

public class Singleton {

 

    private Singleton() {

    }

 

    /**

     * 类级的内部类,也就是静态的成员式内部类,该内部类的实例与外部类的实例 没有绑定关系,而且只有被调用到时才会装载,从而实现了延迟加载。

     */

    private static class SingletonHolder {

        /**

         * 静态初始化器,由JVM来保证线程安全

         */

        private static Singleton instance = new Singleton();

    }

 

    public static Singleton getInstance() {

        return SingletonHolder.instance;

    }

 

}

分享到:
评论

相关推荐

    DelayLoadDll_Test_延时加载_延时加载的实现_

    "延时加载"(Delay Load DLL)是一种优化技术,它允许应用程序在实际需要使用DLL功能时才进行加载,而不是在程序启动时立即加载。这有助于减少程序启动时间,节省系统资源,并减少因找不到特定DLL而引发的错误。 ...

    ext扩展 延时加载

    在IT行业中,"ext扩展 延时加载"是一个关于前端开发的重要概念,特别是对于使用Ext JS框架的应用程序。Ext JS是一个强大的JavaScript库,用于构建数据驱动的富客户端应用程序。延时加载(Lazy Loading)是一种优化...

    延时加载+静态资源本地缓存

    "延时加载+静态资源本地缓存"是两种非常有效的技术手段,它们能够帮助我们实现这一目标。本篇文章将详细探讨这两种策略,以及如何将它们应用于实际项目中。 首先,让我们来看看静态资源本地缓存。静态资源通常包括...

    ExtJs GridPanel延时加载.rar

    在给定的"ExtJs GridPanel延时加载.rar"文件中,主要涉及的核心概念是ExtJs中的GridPanel组件以及延时加载技术。GridPanel是ExtJs中一个非常重要的组件,它用于展示表格数据,而延时加载则是一种优化大量数据处理的...

    magento图片延时加载插件

    图片延时加载(也称为懒加载)是一种优化网页性能的技术,它只在用户滚动到图像所在的视口区域时才开始加载图片,而不是一次性加载所有图片。这种策略可以显著减少页面的初始加载时间,提高用户体验,特别是对于拥有...

    fragment延时加载demo

    延时加载是一种设计模式,它允许我们只在真正需要时才加载资源,避免了在启动应用或切换页面时一次性加载所有内容导致的内存浪费和性能下降。 "fragment延时加载demo"是一个示例项目,它专门展示了如何在Fragment中...

    图片延时加载demo

    图片延时加载(Lazy Loading)是一种优化网页性能的技术,它主要应用于处理大量图片的网页,目的是提高页面加载速度,减少用户等待时间,并节省网络带宽。在这个“图片延时加载demo”中,我们将深入探讨这一技术的...

    仿照手机淘宝网站图片延时加载

    在移动互联网时代,为了优化网页性能和用户体验,"仿照手机淘宝网站图片延时加载"是一种常见的技术策略。淘宝作为电商巨头,其移动端应用在图片处理方面有着独特的优化方案,这种技术被称为“懒加载”(Lazy Loading...

    hibernate属性延时加载如何操作、相应的jar包

    hibernate3的属性延时加载是个很有意义的东西,它能让你把你不想加载到内存里的东西在查询的时候排除。 我相信来下载这个东西的人都已经很了解这一块的知识了,只是配不对那个类增强器才来下载我这个文件。 这些...

    WPF_MVVM模式延时加载实现

    在本文中,我们将深入探讨如何在WPF(Windows Presentation Foundation)环境中使用MVVM(Model-View-ViewModel)模式实现延时加载。WPF是.NET框架的一部分,为开发人员提供了丰富的用户界面功能,而MVVM是一种设计...

    图片延时加载例子

    在IT行业中,图片延时加载(也称为懒加载或惰性加载)是一种优化网页性能的策略,它允许页面中的图片在真正需要时才被加载,而不是一次性全部加载。这种技术对于提升网页的加载速度和用户体验尤其重要,尤其是在移动...

    【北大青鸟内部教程】jsp中关于Hibernate延时加载的问题

    在处理大数据量或者复杂数据结构时,Hibernate引入了延时加载(Lazy Loading)机制,以提高应用程序的性能。本文将深入探讨在JSP(JavaServer Pages)环境中,如何理解和应对Hibernate的延时加载问题。 首先,我们...

    论坛延时加载的插件

    在IT行业中,论坛延时加载(也称为延迟加载或惰性加载)是一种优化网页性能的技术。Discuz! 是一个非常流行的开源社区论坛软件,它允许用户建立和管理自己的在线讨论平台。这款“论坛延时加载插件”显然是针对Discuz...

    js滚动延时加载

    JavaScript滚动延时加载,也称为懒加载(Lazy Loading),是一种优化网页性能的技术。它主要应用于大量数据或图像的页面,通过只在用户滚动到可视区域时才加载相关内容,从而减少初次加载页面时的数据量,提高页面...

    68ecshop__ECSHOP图片延时加载免费插件

    而图片延时加载则只在用户滚动到图片所在位置时才开始加载,这样可以显著减少首屏加载时间,提升页面加载速度。 二、ECSHOP图片延时加载插件的实现 1. **插件安装**:首先,你需要下载这个名为“68ecshop__ECSHOP...

    图片延时加载实例

    图片延时加载是一种优化网页性能的技术,特别是在网页中包含大量图片的情况下。这种技术的主要目的是减少初始页面加载时间,提升用户体验,因为用户在页面首屏显示后通常会更快地看到内容,而不会立即滚动到页面底部...

    实现iframe延时加载

    问题已经解决了,和各位分享代码: [removed] = function() { frames[“BiframeName”].location.href = “B.htm”; } [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

    图片延时加载jquery1.4.2

    图片延时加载是一种优化网页性能的技术,特别是在网页包含大量图片时更为重要。它基于一个基本原理:只有当图片进入浏览器的视口,即用户能看到图片时,才开始加载。这样可以减少初始页面加载时间,提高用户体验,...

    音视频资料-图片延时加载例子详解.rar

    在IT领域,图片延时加载(也称为懒加载或延迟加载)是一种优化网页性能和用户体验的技术。本资源“音视频资料-图片延时加载例子详解.rar”提供了关于这个主题的详细指南,主要针对图片资源的处理。以下是相关知识点...

    IOS UIScrollView复用加载数据 延时加载数据

    本篇文章将深入探讨如何在UIScrollView中实现数据的延时加载和复用机制。 首先,了解UIScrollView的工作原理至关重要。它通过内容视图(content view)来展示数据,内容视图的大小可以超过实际显示区域的大小,从而...

Global site tag (gtag.js) - Google Analytics