单例模式
来源:互联网 发布:php数据管理系统 编辑:程序博客网 时间:2024/06/07 03:30
第一种形式:懒汉式,也是常用的形式。
1
2
3
4
5
6
7
8
9
10
11
12
13
public class SingletonClass{
private static SingletonClass instance=null;
public static synchronized SingletonClass getInstance()
{
if(instance==null)
{
instance=new SingletonClass();
}
return instance;
}
private SingletonClass(){
}
}
第二种形式:饿汉式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//对第一行static的一些解释
// java允许我们在一个类里面定义静态类。比如内部类(nested class)。
//把nested class封闭起来的类叫外部类。
//在java中,我们不能用static修饰顶级类(top level class)。
//只有内部类可以为static。
public class Singleton{
//在自己内部定义自己的一个实例,只供内部调用
private static final Singleton instance = new Singleton();
private Singleton(){
//do something
}
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance(){
return instance;
}
}
第三种形式: 双重锁的形式。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class Singleton{
private static Singleton instance=null;
private Singleton(){
//do something
}
public static Singleton getInstance(){
if(instance==null){
synchronized(Singleton.class){
if(null==instance){
instance=new Singleton();
}
}
}
return instance;
}
}
0 0
- 单例、单例模式
- 单例模式-多线程单例模式
- 单件模式(单例模式)
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- PHP模式-单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 单例模式(单子模式)
- 设计模式-单例模式
- [设计模式] 单例模式
- swift - 类的继承
- MVC,MVP 和 MVVM
- 创业网友提问:
- [Android异常]listview(含上拉加载,上拉加载)下拉刷新报数组越界异常
- 十六进制
- 单例模式
- Servlet监听器
- 判断一个点是否在三角形内
- 小于65536的数的十六进制数
- Android之EditText属性详解
- OpenCV学习笔记_图像转换cvCvtColor、通道分割cvSplit以及通道合并cvMerge
- mysql中取当前日期并格式化
- 字符串判空出现的问题
- 将一个数换为二进制