`

java利用class的load机制实现单例模式

阅读更多

先上代码

public class Singleton {

    private static Singleton instance = null;

    public static Singleton getInstance() {
        if(instance == null) {
            instance = SingletonLazy.lazy;
        }
        return instance;
    }

    private static class SingletonLazy {
        public static Singleton lazy = new Singleton();
    }

}

 

classloader首先会加载Singleton.class文件,运行到if(instance==null)这句的时候,如果为空,回去加载SingletoneLazy.class。如此便实现了lazy初始化。

分享到:
评论

相关推荐

    java单例模式.doc.doc

    - 静态内部类:利用类加载机制保证单例,既延迟初始化,又线程安全。 ```java public class AppConfig { private AppConfig() { // 读取配置文件... } private static class SingletonHolder { private ...

    java设计模式,单例模式学习示例源码,创建单例,配置文件读取

    4. 静态内部类:利用Java类加载机制保证线程安全,同时延迟初始化。 ```java public class Singleton { private Singleton() {} private static class SingletonHolder { private static final Singleton ...

    设计模式之单例模式

    4. **静态内部类**:利用Java的类加载机制来保证初始化实例时只有一个线程,既实现了懒加载又保证了线程安全。 #### 示例代码分析 下面是一个简单的单例模式实现示例: ```java package com.icss.zf.dao.jdbc; ...

    配置文件+类加载器(单例模式)连接数据库

    在数据库连接管理中,使用单例模式创建数据库连接池可以优化性能和资源利用率。这是因为单例模式能防止创建多个不必要的数据库连接,从而降低内存开销和并发问题。数据库连接池(如C3P0、HikariCP或Apache DBCP)...

    程序员美团篇.pdf

    * 单例模式:程序员需要了解单例模式的实现和应用场景。 * 乐观锁、悲观锁、互斥锁、读写锁:程序员需要了解各种锁的原理和应用场景。 其他 * Java线程池:程序员需要了解Java线程池的原理和应用场景。 * ...

    Java 基础面试题

    Java 基础面试题涵盖了广泛的Java编程概念和技术,这些知识点是任何Java开发者在面试中都可能遇到的。下面是对这些知识点的详细说明: 1. **抽象类与接口的区别**: - 抽象类是一种可以包含抽象方法的类,可以有非...

    java核心面试

    为了保证在多线程环境中也能正确地实现单例模式,通常会采用以下几种方法: 1. **双重检查锁定(Double-Checked Locking)**: - 这种方式是在第一次实例化时进行同步,之后不再同步。 - 代码示例: ```java ...

    java面试小技巧

    单例模式、工厂模式、代理模式和适配模式是Java中常用的几种设计模式,它们各有不同的应用场景和优势。理解这些设计模式的原理和实现,能够帮助开发者写出更加模块化和可维护的代码。 最后,理解面向对象编程的设计...

    Java se 面试题.docx

    Java SE面试题主要涵盖语言特性和编程概念,这里我们详细探讨一下题目中涉及的自增变量和单例设计模式。 **自增变量** 在Java中,自增(++)和自减(--)运算符用于增加或减少变量的值。在表达式中使用自增或自减时,...

    (转)java读取properties文件

    - 为了提高可复用性和灵活性,可能会有一个设计模式,比如工厂模式或者单例模式,使得全局只创建一个`Properties`实例。 - 如果文件不存在或者加载过程中出现异常,源码中可能包含异常处理逻辑,例如使用`try-...

    面向对象设计模式解析

    2. **高级程序员**:了解设计模式的应用及Java中的进阶技术。 3. **系统分析师**:探索项目中的通用问题并寻找解决方案。 #### 三、设计模式概述 设计模式通常分为三大类:创建型、结构型和行为型。下面我们将详细...

    Java基于自定义类加载器实现热部署过程解析

    Java中基于自定义类加载器实现热部署是指在不重启应用的情况下,当类的定义即字节码文件修改后,能够替换该Class创建的对象。热部署是Java中的一个重要概念,它可以使得应用程序在不需要重启的情况下,实现类的动态...

    java操作fastdfs来上传文件的代码

    同时,为了提高代码的可复用性和灵活性,你可以将`FastDFSUtil`类设计成单例模式,或者使用依赖注入框架如Spring来管理。 现在,你已经了解了如何使用Java操作FastDFS来上传文件,并将其封装为一个工具类。这个过程...

    java内存模型

    **双重检查锁定(Double-Checked Locking, DCL)**是一种常见的懒汉式单例模式的实现方式。其核心思想是在外部的条件判断语句中加入一次同步控制,并在内部的条件判断中再次检查,以此避免不必要的同步开销。然而,...

    互联网大厂Java工程师岗位面试真题

    设计模式是软件设计中的一些通用解决方案,如单例模式(确保类只有一个实例)、工厂模式(创建对象的抽象方法)、装饰器模式(动态添加功能)等。 【数据库事务】 事务实现原理涉及ACID特性,确保事务的原子性、...

    Java工程中资源文件的用法

    在这个示例中,我们通过单例模式实现了`Env`类,确保了`Properties`对象的唯一性,同时也简化了资源文件的读取过程。这种方式特别适用于那些需要频繁访问的配置信息,因为它避免了每次读取文件的开销,同时保证了...

Global site tag (gtag.js) - Google Analytics