`

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)...

    JAVA设计模式的ppt教程,讲解非常清楚

    单例模式有多种实现方式,这里介绍一种懒汉式实现: ```java public class Singleton { private static Singleton instance; private Singleton() {} public static synchronized Singleton getInstance() { if...

    程序员美团篇.pdf

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

    Java 基础面试题

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

    java核心面试

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

    JAVA面试题

    在准备JAVA面试的过程中,了解和掌握相关知识点是非常重要的,尤其是JAVA基础知识、数据结构、设计模式、JVM原理、反射机制、多线程与并发编程、IO模型、垃圾收集机制等。本篇将详细解析JAVA面试中常见的知识点,...

    java面试小技巧

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

    Java se 面试题.docx

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

    黑马java面试题

    - Class.forName()和ClassLoader都是用于加载类,区别在于前者在加载类的同时会初始化类,而ClassLoader的loadClass()方法仅加载类而不初始化。 #### 动态代理 - 动态代理是运行时动态创建一个实现了某接口或某类的...

    (转)java读取properties文件

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

    PHP常见设计模式详解

    虽然很多人误以为设计模式是专门为Java架构师准备的高级技巧,但实际上,无论何种语言背景的开发者都能从中受益匪浅。尤其在PHP这种广泛应用于Web开发的语言中,合理运用设计模式可以显著提高代码质量,促进软件的可...

    面向对象设计模式解析

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

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

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

    java内存模型

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

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

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

    Java工程中资源文件的用法

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

    DesignPatterns:Java中的一些设计模式示例

    在Java中,可以通过双重检查锁定(Double-Checked Locking)或静态内部类等方式实现单例。例如: ```java public class Singleton { private static volatile Singleton instance; private Singleton() {} ...

Global site tag (gtag.js) - Google Analytics