懒汉和恶汉单例模式

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