利用两种方式分别实现单例模式(懒汉式、饿汉式)

复制代码
package testsingle;
    //实现单例的两种方式
public class TestMySingle {
    public static void main(String[] args) {
        ClassA ca1 = ClassA.getClassA();
        ClassA ca2 = ClassA.getClassA();
        System.out.println(ca1==ca2);
        ClassB cb1 = ClassB.getClassB();
        ClassB cb2 = ClassB.getClassB();
        System.out.println(cb1==cb2);
    }
}
class ClassA{       //饿汉式
    private static final ClassA ca = new ClassA();
    private ClassA(){}
    public static ClassA getClassA(){
        return ca;
    }
}
class ClassB{       //懒汉式
    private static  ClassB cb ;
    private ClassB(){}
    public synchronized static ClassB getClassB(){
        if(cb==null){
            cb = new ClassB();
        }
        return cb;
    }
}
相关推荐
likerhood5 小时前
java中的return this、链式编程和Builder模式
java·开发语言
spring2997925 小时前
Spring Boot 实战篇(四):实现用户登录与注册功能
java·spring boot·后端
原来是猿6 小时前
Linux线程同步与互斥(三):POSIX信号量与环形队列生产者消费者模型
linux·运维·服务器·开发语言
未来转换6 小时前
基于A2A协议的生产应用实践指南(Java)
java·开发语言·算法·agent
Rust语言中文社区6 小时前
【Rust日报】Clone:像进程一样 fork 虚拟机的 Rust KVM VMM
开发语言·后端·rust
求知也求真佳6 小时前
S02|工具使用:让 Agent 真正会干活,添加工具
开发语言·agent
后端漫漫6 小时前
Redis 配置文件与服务功能
java·redis
Dwzun6 小时前
基于Java+SpringBoot+Vue的校园二手物品置换系统设计与实现【附源码+文档+部署视频+讲解】
java·开发语言·spring boot
charlie1145141916 小时前
嵌入式Linux驱动开发(3)——内核模块机制 - Linux 的插件系统
linux·运维·开发语言·驱动开发·嵌入式硬件·学习
polaris06306 小时前
Spring Boot 项目开发流程全解析
java·spring boot·log4j