黑马程序员技术交流社区
标题:
单例设计模式
[打印本页]
作者:
357016138
时间:
2014-7-17 18:02
标题:
单例设计模式
懒汉式和饿汉式的区别?
作者:
LYP
时间:
2014-7-17 18:04
饿汉先加载,懒汉后面才加载。
作者:
blue_sky
时间:
2014-7-17 21:26
这个问题,论坛里搜索一下吧!已经有很多很好的解答。。。
作者:
a6511631
时间:
2014-7-18 09:36
涉及到安全问题的是,懒汉式。它们都属于单例设计模式,这个模式设计的最大特点就是,一个对象保证系统中只有一个实例,而且该实例易于外界访问。但是懒汉式的设计在多线程访问时,就不能保证系统中只会有一个实例了,就会出现安全问题,这个时候就用到同步了。
作者:
Adjin
时间:
2014-7-18 09:48
不带你这么水贴的
作者:
张周飞
时间:
2014-7-18 10:01
/**
单例设计模式:
保证一个类仅有一个实例,并提供一个全局访问点。
1:构造方法私有化 private
2:在本类中声明一个本类对象 private static
3:给外部提供一个静态方法,获取对象的实例。
涉及到安全问题的是,懒汉式。它们都属于单例设计模式,这个模式设计的最大特点就是,一
个对象保证系统中只有一个实例,而且该实例易于外界访问。
但是懒汉式的设计在多线程访问时,就不能保证系统中只会有一个实例了,就会出现安全问题,这个时候就用到同步了
饿汉式-----比较着急 生成对象的时候就先定义出对象
懒汉式----后生成对象:在本类中声明一个本类对象先null 在获取对象的实例中生成对象,
:::举个例子::::
*/
public class SingletonDemo{
public static void main(String[] args){
singleton1 S = singleton1.getInstance();
S.Bn();
System.out.println();
singleton2 S1 = singleton2.getInstance();
S1.Bn();
}
}
//-----------------饿汉式-------------------------//
class singleton1{
//1:构造方法私有化!private
private singleton1(){}
//2:声明一个本类对象
private static singleton1 S=new singleton1();
//3:给外部提供一个静态方法,获取对象的实例。
public static singleton1 getInstance(){
return S;
}
public void Bn(){
System.out.println("我是饿汉式!!!!");
}
}
//-----------------懒汉式-------------------------//
class singleton2{
//1:构造方法私有化!private
private singleton2(){}
//2:声明一个本类对象
private static singleton2 S1=null;
//在本类中声明一个本类对象先null
//3:给外部提供一个静态方法,获取对象的实例。
public static singleton2 getInstance(){
if(S1==null){
S1=new singleton2();
//这时候才本类中new一个本类
}
return S1;
}
public void Bn(){
System.out.println("我是懒汉式!!!!");
}
}
作者:
双皮奶
时间:
2014-7-18 10:06
整好看到这里,来学习一下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2