秋风问答网秋风问答网

Go 和 Java 对比学习:单例模式

Java 是较典型的面向对象语言。如果说 C++ 是设计模式的发源地(GoF 的书使用 C++ 描述的),那么 Java 将设计模式发扬光大。设计模式,很多人可能工作中没有用到,因为大部分人停留在写面条式的业务代码,从头撸到尾,没有设计可言。但实际上,只要你用心思考,这样的场景下也是很有可能用上设计模式的。特别是,当系统复杂时,设计模式的作用会很明显。

Java—认识单例模式

1、单例模式的功能

单例模式是用来保证这个类在运行期间只会被创建一个类实例,另外,单例模式还提供了一个全局唯一访问这个类实例的访问点,就是getInstance()方法。不管釆用懒汉式还是饿汉式的实现方式,这个全局访问点是一样的。

Java设计模式-单例设计模式

Java单例模式

定义

阿瑟Java (32):单例模式

PS:创作不易,感谢阅读,希望对读者有所帮助,喜欢的话可以点赞、收藏、关注,作者会持续更新 Java 生态圈常见知识。黑色加粗为重点关注内容!

Java知识点总结基础篇之单例

掌握Java的单例模式,确保线程安全与性能

Java的单例模式是一种常用的设计模式,它确保一个类只能创建一个对象,并提供全局访问点。在多线程环境下,为了确保线程安全性以及保证性能,需要特别注意单例模式的实现。下面将详细介绍Java中单例模式的概念、实现方式以及如何确保线程安全和性能。

Java中常见的单例模式

public class SingletonDemo {
    /**
     * 常见的单例模式:饿汉式,懒汉式,双重检索琐式,其中饿汉式和懒汉式比较常见
     * 单例常见的应用场景:
     * 1.项目中读取文件配置;
     * 2.数据库连接池;
     * 3.Spring中的每个bean都是单例,便于Spring容器进行管理;
     * 4.Servlet中Application
     * 5.网络计数器,回收站,任务管理等等
     */
}
/**
 * 饿汉式:线程安全,调用效率高,但是不能延时加载
 * 由于该模式在加载类的时候d对象就已经创建了,所以加载类的比较慢,但是获取对象实例比较快,且线程是安全的
 */
class  SingletonDemo1{

    //线程安全的
    //类初始化,立即加载
    private static SingletonDemo1 instance = new SingletonDemo1();

    //构造方法私有化
    private SingletonDemo1(){
    }

    //方法没有加同步块,所以效率高
    public static SingletonDemo1 getInstance(){
        return instance;
    }

}

/**
 * 懒汉式:线程不安全。
 */
class SingletonDemo2{
    //线程不安全
    private static SingletonDemo2 instance = null;

    //构造方法私有化
    private SingletonDemo2(){
    }

    public static SingletonDemo2 getInstance(){
        if (instance == null){
            instance = new SingletonDemo2();
        }
        return instance;
    }
}

/**
 * 懒汉式:双重同步锁
 */
class SingletonDemo3{

    private static volatile SingletonDemo3 instance = null;

    private SingletonDemo3(){}

    public static SingletonDemo3 getInstance(){
        if (instance == null){
            synchronized (SingletonDemo3.class){
                if (instance == null){
                    instance = new SingletonDemo3();
                }
            }
        }
        return instance;
    }

}

Java单例模式揭秘:从饿汉到枚举的完全指南

java单例模式之饿汉式代码实现以及思路,和需要注意的地方

在Java中,饿汉式的单例模式可以通过以下代码实现:

public class Singleton {

// 在类加载时就实例化对象

private static Singleton instance = new Singleton();

// 私有构造方法,防止外部实例化

private Singleton() {}

// 提供全局访问点

public static Singleton getInstance() {

return instance;

}

}

回到首页 发表评论 回到顶部