下载此文档

Singleton设计模式之java.doc


文档分类:IT计算机 | 页数:约2页 举报非法文档有奖
1/2
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/2 下载此文档
文档列表 文档介绍
Singleton设计模式之java
在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请搜索疯狂Java;
 单实例Singleton设计模式可能是被讨论和使用的最广泛的一个设计模式了,这可能也是面试中问得最多的一个设计模式了。这个设计模式主要目的是想在整个系统中只能出现一个类的实例。下面我们就程序说话。
  public class Singleton {
 private static Singleton singleton;
  private Singleton() {

  public static Singleton getInstence() {
  if (singleton == null) {
  singleton = new Singleton();
  }
  return singleton;
  }

 我们看这个程序确实实现了单例模式,但是我们有没有想过要是在多线程中的话呢,虽然在多线程中出现问题的可能性非常小,但是作为一个严谨程序员我们必须应该考虑到,:
 public class Singleton {
  private static Singleton singleton;
 private Singleton() {
 }
 public static Singleton getInstence() {
 synchronized () {
  if (singleton == null) {
 singleton = new Singleton();
}
 }
 return singleton;
 }
  }
  这确实考虑考到了线程的问题,我们本来只是想让new这个操作并行就可以了,现在,只要是进入getInstance()的线程都得同步啊,注意,创建对象的动作只有一次,后面的动作全是读取那个成员变量,这些读取的动作不需要线程同步啊。这样的作法感觉非常极端啊,为了一个初始化的创建动作,居然让我们达上了所有的读操作,严重影响后续的性能啊!
  所以进一步改进:
  public class Singleton
 {
private static final Singleton singleton;
privat

Singleton设计模式之java 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数2
  • 收藏数0 收藏
  • 顶次数0
  • 上传人phl808
  • 文件大小18 KB
  • 时间2021-04-14
最近更新