{"title":"用Java语言写个单例设计模式的案例","description":"以下是一个使用Java语言实现的单例设计模式的案例:\n\njava\npublic class Singleton {\n private static Singleton instance;\n\n // 私有构造函数,防止外部实例化对象\n private Singleton() {}\n\n // 获取单例对象的方法\n public static Singleton getInstance() {\n if (instance == null) {\n // 在多线程环境下,可能会有多个线程同时进入到这里\n // 因此需要使用 synchronized 关键字进行同步\n synchronized(Singleton.class) {\n // 双重检查,确保只有第一个线程创建了实例对象\n if (instance == null) {\n instance = new Singleton();\n }\n }\n }\n return instance;\n }\n\n // 其他业务方法\n public void doSomething() {\n System.out.println("Singleton instance is doing something.");\n }\n}\n\n\n在上述案例中,Singleton类的构造函数被声明为私有,以防止外部代码直接通过new Singleton()来实例化对象。通过getInstance()方法获取Singleton类的单例对象。\n\n在getInstance()方法中,使用了双重检查的方式来确保只有第一个线程创建了实例对象。在多线程环境下,多个线程可能同时通过第一个if语句的判断,因此需要使用synchronized关键字来保证只有一个线程进入临界区创建实例对象。这样可以避免多个线程创建多个实例对象的问题。\n\n使用示例:\n\njava\npublic class Main {\n public static void main(String[] args) {\n // 获取单例对象\n Singleton singleton = Singleton.getInstance();\n\n // 调用业务方法\n singleton.doSomething();\n }\n}\n\n\n输出结果:\n\n\nSingleton instance is doing something.\n

Java单例设计模式实现案例详解 - 代码示例与多线程优化

原文地址: https://www.cveoy.top/t/topic/ptNJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录