饿汉式单例模式:
package com.jzh.singleTon;
/**
* 饿汉式单例模式
* Created by nameJuzhihua on 2017/9/14.
*/
public class SingletonHungry {
//类初始化时,立即加载这个对象(没有延时加载的优势)。加载类时,线程安全
private static SingletonHungry HungryInstance = new SingletonHungry();/*类初始化时,立即加载这个对象*/
private SingletonHungry() {
}
//方法没有同步,调用效率高
public static SingletonHungry getInstance() {
return HungryInstance;
}
}
懒汉式单例模式:
package com.jzh.singleTon;
/**
* 懒汉式单例模式(单例对象延时加载)
* 延时加载,懒加载。真正用的时候才加载
* 资源利用率高。但是,每次调用getInstance()方法时都要同步,并发效率较低
* Created by nameJuzhihua on 2017/9/14.
*/
public class SingletonLazy {
private static SingletonLazy lazyInstance;
//私有化构造器
private SingletonLazy() {
}
public static synchronized SingletonLazy getLazyInstance() {
if (lazyInstance==null){
lazyInstance=new SingletonLazy();
}
return lazyInstance;
}
}