黑马程序员技术交流社区
标题:
两个单例模式,对冯佳老师视频中懒汉式的一点补充
[打印本页]
作者:
wosika
时间:
2016-9-14 17:25
标题:
两个单例模式,对冯佳老师视频中懒汉式的一点补充
下面内容纯手打:
单例模式,饿汉式
public class Singleton{
private Singleton(){}//私有构造方法
private static Singleton s = new Singleton(); //私有成员变量,让类一旦加载就创建对象用静态修饰
public static Singleton getInstance(){
return s; //提供公共的方法,将该方法用静态修饰,因为静态只能调用静态,所以需要成员变量要用static 修饰。
} //(个人理解)饿汉式之所以叫饿汉式,是因为在类一旦加载进来,就会创建出一个实例对象,节省了时间,浪费了空间,所以叫饿汉式。
}
单例模式,懒汉式
public class Singleton{
private Singleton(){}//私有构造方法
private static Singleton s; //私有成员变量,因为它懒,所以一开始不创建实例,引用类型成员变量默认初始化值为null,可以不用赋值。
//
以下是重点
public static
synchronized
Singleton getInstance(){
//补充:因为懒汉式没有在一开始的时候创建对象,所以在多线程使用时,又可能会因为延迟创建多个对象,所以,在公共的访问方法上,
//添加了一个关键字 synchronized 。这样保持线程同步,可以避免这个情况,达到真正的单例模式,这是对冯佳老师的视频的一个补充。
if (s == null){
s = new Singleton(); //创建对象。时间相对饿汉式,要久一点。
}
return s;
}
}
作者:
kangnam
时间:
2016-9-14 18:34
你不会也今天刚刚学这个吧
作者:
江月念华
时间:
2016-9-14 20:52
这是学到哪了看的懂代码,不懂名词
作者:
haoge349
时间:
2016-9-14 21:30
再理解一下.......
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2