饿汉式是典型的空间换时间,当类装载的时候就会创建类的实例,不管你用不用,先创建出来,然后每次调用的时候,就不需要再判断,节省了运行时间。
package com.fts.javatribe.singleton;
/**
* 单例模式---饿汉式
* @ClassName:Singleton
* @Description:TODO
* @author FTS
* @date Nov 2, 2014 7:19:06 PM
*/
public class Singleton {
private static Singleton instance=new Singleton();
private Singleton(){
}
public static Singleton getInstance(){
return instance;
}
}
懒汉式是典型的时间换空间,就是每次获取实例都会进行判断,看是否需要创建实例,浪费判断的时间。当然,如果一直没有人使用的话,那就不会创建实例,则节约内存空间,由于懒汉式的实现是线程安全的,这样会降低整个访问的速度,而且每次都要判断。
**
* 单例模式--懒汉式
* @ClassName:Singleton1
* @Description:TODO
* @author FTS
* @date Nov 2, 2014 7:22:41 PM
*/
public class Singleton1 {
private static Singleton1 instance=null;
private Singleton1(){
}
public static Singleton1 getInstance(){
if(instance==null){
instance=new Singleton1();
}
return instance;
}
}