面试中临时让写的代码——编写一个延迟加载的单例设计模式
2013-11-25 15:50
423 查看
------- android培训、java培训、期待与您交流! ----------
单例设计模式呢,有两种了 ,一个是懒汉式,一个饿汉式。那么先说下两者的区别:
1 懒汉式的特点在于实例的延迟加载。
2 然而在多线程时又会出现安全问题。
3 当然了,用加同步来解决。而加同步的方式是用同步代码块。但稍微有些低效。
4 用双重判断的形式能够解决这个问题,
5 加同步时使用的锁是该类所属的字节码文件对象。
class Single{
private static Single s=null;
private Single(){}
public static void main(String[] args){
if(s==null){
synchronized(Single.class){
if(s==null)
s=new Single();
}
return s;
}
}
}
单例设计模式呢,有两种了 ,一个是懒汉式,一个饿汉式。那么先说下两者的区别:
1 懒汉式的特点在于实例的延迟加载。
2 然而在多线程时又会出现安全问题。
3 当然了,用加同步来解决。而加同步的方式是用同步代码块。但稍微有些低效。
4 用双重判断的形式能够解决这个问题,
5 加同步时使用的锁是该类所属的字节码文件对象。
class Single{
private static Single s=null;
private Single(){}
public static void main(String[] args){
if(s==null){
synchronized(Single.class){
if(s==null)
s=new Single();
}
return s;
}
}
}
相关文章推荐
- java编写一个延迟加载的单例设计模式
- 黑马程序员---------------------编写一个延迟加载的单例设计模式
- Java练习题-编写一个线程安全的延迟加载单例模式(懒汉模式)
- Java练习题-编写一个线程安全的延迟加载单例模式(懒汉模式)
- 编写一个写字板初步了解Winform编程(三)——代码设计
- 延迟加载的单例设计模式
- [置顶] Java 多线程学习笔记(十一) 单例设计模式(延迟加载/懒汉模式)DCL解决线程安全问题
- Delphi 设计模式:《HeadFirst设计模式》Delphi代码---模式小结之一个叫声接口和几只鸭子
- 多线程操作单例设计模式的延迟加载(懒汉式)
- 设计模式系列---两种懒汉式延迟加载单例模式
- 如何编写优雅的代码:06. 设计模式应用案例(上)
- 应用设计模式编写易于单元测试的代码
- 如何编写优雅的代码:07. 设计模式应用案例(下)
- 编写高质量代码改善C#程序的157个建议——建议49:在Dispose模式中应提取一个受保护的虚方法
- 黑马程序员,延迟加载的单例设计模式
- 程序员代码面试指南--设计一个具有getMin功能的栈
- 设计延迟加载的“单例设计模式”
- 自己编写的一个Json工具类,实现了反射将整个Object转换为Json对象的功能,支持Hibernate的延迟加载对象[修订081217]
- 设计模式精解-第三章-一个急需灵活代码的问题
- 设计一个有getMin功能的栈 程序员代码面试指南