下面是单例模式的懒汉式和饿汉式:
public class MySingleton
{
//该类只能有一个实例
//私有无参构造方法
private MySingleton() { }
//该类必须自行创建
//有2种方式
private static final MySingleton ms = new MySingleton();//饿汉式
//private static TestStream ts = null; //懒汉式
//提供唯一实例对象
public static MySingleton getTest()
{
//懒汉式时进行判断
//if (ms == null) {
// synchronized (MySingleton.class) {
// if(ms == null) {
// ms = new MySingleton();
// }
// }
//}
return ms;
}
}
懒汉式的特点是延迟加载,比如配置文件,采用懒汉式的方法,顾名思义,懒汉么,很懒的,配置文件的实例直到用到的
时候才会加载。。。。。。
饿汉式的特点是一开始就加载了,如果说懒汉式是“时间换空间”,那么饿汉式就是“空间换时间”,因为一开始就创建了实例,所以每次用到的之后直接返回就好了。
|