黑马程序员技术交流社区
标题:
记录---饿汉式和懒汉式
[打印本页]
作者:
ColdMoon
时间:
2015-7-30 19:19
标题:
记录---饿汉式和懒汉式
1、饿汉式
饿汉式:指全局的单例实例在类加载时构建。 立即初始化。
速度快,不调用时也创建
类被加载时,静态变量instance会被初始化,此时类的私有构造函数会被调用。
public class Singleton1 {
Singleton1(){}
private static Singleton1 instance=new Singleton1();
public static Singleton1 getlnstance(){
return instance;
}
}
复制代码
2、懒汉式
懒汉式:指全局的单例实例在第一次被使用时构建。延迟初始化。
速度慢,调用时才创建
改进后的代码(双重加锁)
public class Singleton2 {
private Singleton2(){}
private static Singleton2 instance;
public synchronized static Singleton2 getlnstance(){
init();
if(instance==null){
synchronized(Singleton2.class){
if(instance==null)
instance=new Singleton2();
}
return instance;
}
return instance;
}
private static void init(){}
}
复制代码
饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变
懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的
最好使用第一种
作者:
AI_96
时间:
2015-7-30 19:21
6666666666666
作者:
梦想的种子
时间:
2015-7-30 19:31
目前我还看不懂
作者:
黑马.卤蛋
时间:
2015-7-30 19:32
貌似看不懂
作者:
孙晓磊
时间:
2015-7-30 20:26
懒多为面试所用
作者:
15225159271
时间:
2015-7-30 20:30
够详细,把多线程都分析上了
作者:
何时归来看花开
时间:
2015-7-30 21:10
看不懂,但记得面试题会有问着的
作者:
曾云鹏
时间:
2015-7-30 22:07
有点难~~~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2