public
class Singleton{
//
访问级别设置为private,确保在系统的其余代码不会被实例化
private Singleton(){}
//
声明static,在jvm加载单例类时,单例对象就会被创建
private
static Singleton singletion =
new Singleton();
public
static Singleton getInstance(){
return singleton;
}
}
public
class Singleton{
private Singleton(){}
private
static Singleton singleton =
null;
//
同步,防止多线程环境下建立多个实例
public
static
synchronized Singleton getInstance(){
if(singleton ==
null){
singleton =
new Singleton();
}
return singleton;
}
}
//当Singleton加载时,不会初始化其内部类;只有在调用getInstance这个方法时,才会加载内部类SingletonHolder,实现了延迟加载的功能,又下降系统性能。
public
class Singleton{
private Singleton(){}
private
static
class SingletonHolder{
private
static Singleton instance =
new Singleton();
}
public
static Singleton getInstance(){
return SingletonHolder.instance; } }