流年似水博客开通了,本站主要是写关于Web和大数据方面内容,正在更新中,欢迎大家光临!
  1. 文章:97 篇
  2. 总浏览:54,712 次
  3. 评论:22条
  4. 最后更新:2020-06-08
  5. 分类目录:39 个

Java之设计模式-单例模式

Java l, xy 314℃ 0评论

  1.   单例设计模式

(1)      目的:

1           是的类只能创建一个对象

(2)      应用场景

1           配置类

2           多次调用一个类的方法的时候

(3)      实现步骤

1           构造函数私有化

2           本类中创建本类对象

3           对外通过静态的访问方法,或者本类创建的对象

(4)      分类

1           饿汉式

1)         优点:类加载的时候就会创建对象,没有线程安全问题

2)         缺点:提前创建对象,会多占用一定的内存空间。

3)         实现:


/**
* 饿汉式
*/
class Single {
//2.本类创建唯一的实例对象
private static Single single = new Single();

//1.私有化构造方法,外部类不能创建本类对象
private Single() {

}
//3.对外提供公共的方法
public static Single getInstance() {
return single;
}

2           懒汉式

1)         优点:延迟对象的创建,节省一点内存空间

2)         缺点:有线程安全问题(可以加多重判断解决),第一次创建的时候,多线程同时调用可能会引起线程等待。

3)         实现:


/**
* 懒汉式
*/
class Single {
//2.本类创建唯一的引用
private static Single single = null;

//1.私有化构造方法,外部类不能创建本类对象
private Single() {

}

//3.对外提供公共的方法
public static Single getInstance() {
if (single == null) {
synchronized (Single.class) {
//防止多线程,创建多个对象
if (single == null) {
single = new Single();
}
}
}
return single;
}

}

 

转载请注明:流年似水 » Java之设计模式-单例模式

喜欢 (4)or分享 (0)

Warning: copy(https://cn.gravatar.com/avatar/?s=54&d=%2Fwp-content%2Fthemes%2Fyusi1.0%2Fimg%2Fdefault.png&r=g): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /usr/share/nginx/html/timewentby/wp-content/themes/yusi1.0/functions.php on line 239

Warning: copy(/wp-content/themes/yusi1.0/img/default.png): failed to open stream: No such file or directory in /usr/share/nginx/html/timewentby/wp-content/themes/yusi1.0/functions.php on line 243
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址