`

写一个singleton

 
阅读更多

 第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。

 

public class Singleton {
private Singleton(){}
      //在自己内部定义自己一个实例,是不是很奇怪?
      //注意这是private 只供内部调用
      private static Singleton instance = new Singleton();
      //这里提供了一个供外部访问本class的静态方法,可以直接访问  
      public static Singleton getInstance() {
        return instance;   
      } 
    } 

 

  第二种形式:

public class Singleton { 
  private static Singleton instance = null;
  public static synchronized Singleton getInstance() {
  //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次     
  //使用时生成实例,提高了效率!
  if (instance==null)
    instance=new Singleton();
return instance;   } 
} 

 

 

一般认为第一种更安全

分享到:
评论

相关推荐

    C++完美实现Singleton模式

    这样,只需要为每个需要成为Singleton的类提供一个模板实例,而无需为每个类写相同的代码。示例中展示了如何创建一个模板类`Singleton<T>`,并定义了一个宏`DECLARE_SINGLETON_CLASS(type)`,使得在实际类中声明...

    好东西IT面试题大全

    ##### 135、写一个Singleton出来 **Singleton模式**是一种常见的设计模式,其主要目的是确保在整个Java应用程序中,一个类仅有一个实例存在,并且提供一个全局访问点来获取这个实例。这有助于节省资源并简化对象间...

    面试编程题

    10、写一个Singleton出来: 单例模式是设计模式的一种,保证一个类只有一个实例。Java中常见的单例实现有饿汉式、懒汉式(线程不安全和线程安全)和双重检查锁定(DCL)等方式。 以上题目覆盖了Java的基础语法、...

    超级有影响力霸气的Java面试题大全文档

    例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望...

    JAVA程序员面试32问

    32. **编程题:写一个Singleton出来** - 双重检查锁定模式的Singleton示例: ```java public class Singleton { private volatile static Singleton instance; private Singleton() {} public static ...

    变态级JAVA程序员面试32问(附答案)

    变态级 JAVA 程序员面试 32 问(附答案) ...32. 编程题:写一个 Singleton 出来。 Singleton 模式是一种设计模式,用于限制类的实例数量。它可以确保一个类只有一个实例,并提供了一个全局访问点。

    singleton.zip

    单例模式是软件设计模式中的一种,用于控制类的实例化过程,确保一个类只有一个实例,并提供全局访问点。在Java编程中,实现单例模式有多种方式,其中包括静态常量、线程安全的同步方法、双重检查锁定(Double-...

    中软国际Java程序员笔试题.doc

    编程题:写一个 Singleton 出来 - 实现 Singleton 模式的方法有很多,比如饿汉式、懒汉式、双重检查锁定等。这里给出一个简单的饿汉式实现示例: ```java public class Singleton { private static Singleton ...

    变态级JAVA程序员面试32问

    第一,谈谈final, finally, finalize的区别。  第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface... 第三十二,编程题: 写一个Singleton出来。

    最新Java面试宝典pdf版

    7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的...

    JAVA面试笔试题大全

    JAVA面试笔试题大全 在 Java 中,final、finally 和 finalize 三个概念经常被混淆,但它们的作用和用途完全不同。 首先,final 是一个修饰符...编程题:写一个 Singleton 出来。答案是一个经典的单例模式的实现。

    JAVA面试题 对JAVA面试有帮助!

    找工作要面试,有面试就有对付面试的办法。以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel,Motorola, SUN,以及其它... 第三十二,编程题:写一个Singleton出来。  下面是答案

    Java面试宝典-经典

    7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的...

    java面试题大全(2012版)

    7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的...

    Java面试宝典2012版

    7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯...

    java面试宝典2012

    7、写一个Singleton出来。 81 8、递归算法题1 84 9、递归算法题2 85 10、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 86 11、有数组a[n],用java代码将数组元素顺序颠倒 87 12.金额转换,阿拉伯数字的...

    Java面试宝典2012新版

    7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的...

Global site tag (gtag.js) - Google Analytics