懒汉、饿汉 // 懒汉式 1234567891011121314 public class { private static Apple apple = null; private (){} public static synchronized Apple getApple(){ if(apple == null) { apple = new Apple(); //需要时再创建Apple实例,需要加synchronized,防止并发操作时多个线程同时创建多个实例 } return apple; }} // 饿汉式 12345678910 public class { private static Apple apple = new Apple(); //提前创建Apple实例 private (){} public static Apple getApple(){ //不需要加synchronized,也能应对并发操作 return apple; } } 另:Java单例模式中双重检查锁的问题 赞微海报分享
近期评论