public class Hero { // 恶汉单例模式 // 私有化构造方法 private void Hero() { } // 用一个类变量把Hero对象保存起来 private static Hero hero1 = new Hero(); // 定义一个可以从外部访问这个对象的静态方法 public static Hero getHero() { // 返回这个对象 return hero1; } // 懒汉单例模式 // 私有化构造方法 // private void Hero() { // } // 定义一个类变量暂时不指向对象,默认为null // private static Hero hero1; // 定义一个可以调用对象的静态方法 // public static Hero getHero() { // 做一个判断,如果刚才的类变量指向的是null // if (hero1 == null) { // 那么就创建一个对象,用刚才的类变量保存起来 // hero1 = new Hero(); // } // 返回这个对象 // return hero1; // } /* 恶汉模式立即加载的方式,不管是否有用到这个对象,都会加载。 * 如果在构造方法里写了性能消耗较大,占时较久的代码 * 比如建立与数据库的连接,那么就会在启动的时候感觉稍微有些卡顿。 * * * 懒汉模式是延迟加载的方式,只有需要使用这个对象的时候才会加载。 * 使用懒汉式,在启动的时候,会感觉到比饿汉式略快,因为并没有做对象的实例化。 * 但是在第一次调用的时候,会进行实例化操作,感觉上就略慢。 * * * 看业务需求,如果业务上允许有比较充分的启动和初始化时间,就使用饿汉式, * 否则就使用懒汉式 * */ public static void main(String[] args) { Hero h1 = Hero.getHero(); Hero h2 = Hero.getHero(); Hero h3 = Hero.getHero(); System.out.println(h1==h2); System.out.println(h2 == h3); } }
懒汉和恶汉单例模式
猜你喜欢
转载自www.cnblogs.com/jijijijibeibeibei/p/12030448.html
今日推荐
周排行