您的位置:首页 > 其它

单例模式中,懒汉式和饿汉式的区别

2013-12-17 22:12 246 查看
饿汉式:

public class Singleton{

private static Singleton singleton = new Singleton ();

private Singleton (){}

public Singleton getInstance(){return singletion;}

}

懒汉式:

public class Singleton{

private static Singleton singleton = null;
private Singleton (){}

public static synchronized synchronized getInstance(){

if(singleton==null){

singleton = new Singleton();

}

return singleton;

}

}

比较:

饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变

懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的

推荐使用第一种 .

从实现方式来讲他们最大的区别就是懒汉式是延时加载,

他是在需要的时候才创建对象,而饿汉式在虚拟机启动的时候就会创建,

使用的场合根据具体环境和个人习惯吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: