饿汉式
//这个类用来测试单例设计模式--饿汉式
public class Singleton_ {
public static void main(String[] args) {
Mysingle m = Mysingle.getSingle();
System.out.println(m);
}
}
//创建自己的单例程序
class Mysingle{
//私有化构造方法,不让外界随意new
private Mysingle(){}
//在类的内部,提供一个已经创建好的对象
//static是因为 静态资源getSingle()只能调用静态
private static Mysingle single = new Mysingle();
//对外提供一个全局访问点
public static Mysingle getSingle(){
return single;//把内部创建好的对象返回调用位置
}
}
懒汉式--常用
延迟加载思想:是指不会第一时间就把对象创建好来占用内存,而是什么时候用什么时候创建。
线程安全问题:是指共享资源有线程并发的数据隐患,加同步锁,锁方法,也可以锁代码块。
//这个类用来测试单例设计模式 -- 懒汉式
public class Single2 {
public static void main(String[] args) {
MySingleton m = MySingleton.getMy();
System.out.println(m);
}
}
class MySingleton{
private MySingleton(){}
private static MySingleton my; //延迟加载!
synchronized public static MySingleton getMy(){
if (my == null){
my = new MySingleton();
}
return my;
}
}
网友评论