黑马程序员 _ Java基础 _ 之单例设计模式
2014-10-17 10:02
330 查看
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
1.饿汉式
class Single
{
private static final Single s = new Single();
private Single(){}
public static Single getInstance()
{
return s;
}
}
2.懒汉式
1)特点:实例的延迟加载,多线程访问会出现线程安全问题
2) 线程安全解决方案:可以加同步来解决:
1,方式一:使用同步函数:同步函数比较低效,每次都要判断
2,方式二:使用同步代码块,同步代码块,可以用双重判断的方式来解决,使用的锁是该函数所在类的字节码文件对象。
class Single
{
private static Single s = null;
private Single(){}
public static Single getInstance()
{
if(s==null)
{
synchronized(Single.class)
{
if(s==null)
//--->A;
s = new Single();
}
}
return s;
}
}
1.饿汉式
class Single
{
private static final Single s = new Single();
private Single(){}
public static Single getInstance()
{
return s;
}
}
2.懒汉式
1)特点:实例的延迟加载,多线程访问会出现线程安全问题
2) 线程安全解决方案:可以加同步来解决:
1,方式一:使用同步函数:同步函数比较低效,每次都要判断
2,方式二:使用同步代码块,同步代码块,可以用双重判断的方式来解决,使用的锁是该函数所在类的字节码文件对象。
class Single
{
private static Single s = null;
private Single(){}
public static Single getInstance()
{
if(s==null)
{
synchronized(Single.class)
{
if(s==null)
//--->A;
s = new Single();
}
}
return s;
}
}
相关文章推荐
- 黑马程序员_java基础复习之十常用设计模式总结
- 黑马程序员__4java基础 静态和几种设计模式
- 黑马程序员 JAVA学习笔记——java基础 单例设计模式
- 黑马程序员_Java基础_线程基础,创建,同步(单例设计模式的同步),死锁
- 黑马程序员——JAVA基础之抽象和接口 , 模版方法设计模式
- 黑马程序员:Java基础总结----装饰设计模式
- 黑马程序员:Java基础总结----单例设计模式
- 黑马程序员:java基础——单例设计模式,synchronized及面试常考内容
- 黑马程序员_Java基础加强_Java类加载器,委托机制,模板方法设计模式
- 黑马程序员_Java基础[14]_模版设计模式、习题练习
- 黑马程序员-------Java基础之单例设计模式
- 黑马程序员_Java基础_面向对象,封装,继承,单例设计模式,构造函数,构造代码块
- 黑马程序员:Java基础总结----模版方法设计模式
- 黑马程序员 _ java基础 _ 之装饰者设计模式
- 黑马程序员-JAVA基础-IO流中的装饰设计模式
- 黑马程序员_java基础学习笔记之单例设计模式
- 黑马程序员—Java基础加强 (基本数据的自动拆装箱及享元设计模式)
- 黑马程序员_Java基础_面向对象(Static的使用、对象初始化和调用成员过程、单例设计模式)
- 黑马程序员---JAVA基础JAVA23种设计模式之---单例设计模式
- 黑马程序员—java基础学习--单例设计模式