package com.xie.singleton;
public class Singleton {
/* //饥汉式(预先加载),这种单例模式是当我们并没有调用getInstance()时
//这个instance就已经创建
//提供一个私有的静态的成员变量
private static Singleton instance=new Singleton();
//提供一个私有的构造方法
private Singleton(){
}
//提供一个共有的静态的入口方法
public static Singleton getInstance() {
return instance;
}
*/
//懒汉式(延迟加载)
//提供一个私有的静态的成员变量,但不做初始化
private static Singleton instance=null;
//提供一个私有的构造方法
private Singleton(){
}
//提供一个共有的静态的入口方法,为了保证线程安全,必须加上同步关键字,synchronized是一个锁,具有同步功能
public static synchronized Singleton getInstance() {
if (instance!=null) {
instance=new Singleton();
}
return instance;
}
public static void main(String[] args) {
/*
* singleton pattern(单例模式)
* 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类,
* 它提供全局的访问方法。单例模式的要点有3个:一是某个类只有一个实例;二是它必须创建这个实例;三是它
* 必须向整个系统提供这个实例。单例模式有2种方法实现,分别是饥汉式(预先加载)和懒汉式(延迟加载)
*/
/*
* 单例提供一个得到其实例的方法,让客户可以使用它的唯一实例,同时在它内部也只生成唯一实例
**/
/**
* 单例模式在实际中的应用:
* 1.windows任务管理器,我们不可能同时打开2个任务管理器
* 2.负载均衡器,对服务器的所有请求都通过一个了解服务器的状态对象来控制。
* 3.系统日志,几乎所有的系统都需要日志记录,用文件提供日志记录,所有的关联日志都记录在同一个文件中
*/
}
}