赞
踩
不管需不需要这个对象,在类初始化时,这个对象都会被创建出来
不存在线程安全问题
1.直接实例化:
/**
* 1.饿汉式直接实例化
* @author kun
*/
public class Singleton1 {
public static final Singleton1 INSTANCE = new Singleton1();
private Singleton1(){
}
}
2.枚举:表示该类型的对象是有限的几个,限定为一个就成了单例
/**
* @author kun
*/
public enum Singleton2 {
INSTANCE
}
3.静态代码块
/**
* 静态代码块
* 常用的情况:要从配置文件里读取信息
* @author kun
*/
public class Singleton3 {
public static final Singleton3 INSTANCE ;
static {
INSTANCE = new Singleton3();
}
private Singleton3(){
}
}
1.适用于单线程的(线程不安全)
/**
* 懒汉式:延迟创建这个实例对象
* 构造器私有化
* 用一个静态变量保存这个唯一实例
* 提供一个静态方法来获取这个实例对象
* @author kun
*/
public class Singleton4 {
private static Singleton4 instance;
private Singleton4(){
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。