首页 > 代码库 > Single

Single

35.编程题: 编写一个Singleton类,并演示如何使用。
 
答:Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。一般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;
其他形式:定义一个类,它的构造函数为private的,所有方法为static的。一般认为第一种形式要更加安全些
第三十三 Hashtable和HashMap Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现 HashMap允许将null作为一个entry的key或者value,而Hashtable不允许 还有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为 contains方法容易让人引起误解。 最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时, 不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

Single