🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
实现步骤如下: **1. 编写单例对象** ```java public class LazySingle { //创建自己的一个static实例 private static LazySingle instance; //提供一个私有化的构造器 private LazySingle() { } /** * 提供公共的静态方法来获取自己的单例对象, * 添加synchronized,可以保证线程安全 * * @return LazySingle */ public synchronized static LazySingle getInstance() { if (instance == null) { instance = new LazySingle(); } return instance; } } ``` **2. 测试** ```java @Test public void testLazySingle() { LazySingle lazySingle1 = LazySingle.getInstance(); LazySingle lazySingle2 = LazySingle.getInstance(); // 输出为true,说明lazySingle1与lazySingle2是同一个对象,做到了单例 System.out.println(lazySingle1 == lazySingle2); } ``` * 优点:第一次调用才初始化,避免内存浪费。 * 缺点:必须加锁synchronized才能保证单例,但影响效率。 懒汉式方式具备很好的lazy loading(懒加载),能够在多线程中很好的工作,但是效率低,很多情况下99%都是不需要同步的。