您好!
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。在很多操作中,比如建立目录,数据库连接都需要这样的单线程操作,如果一个类有多个对象存在的话,就可能带来并发的问题。
实现方法一:
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; } }
使用Singleton注意事项:
1.有时在某些情况下,使用Singleton并不能达到Singleton的目的,如有多个Singleton对象同时被不同的类装入器装载;在EJB这样的分布式系统中使用也要注意这种情况,因为EJB是跨服务器,跨JVM的。 2.单例的效率一直是个问题
刘晓涛
====== 下面是原始邮件 ====== 刘老师: 你好。 我看了关于Singleton方面的知识,不是很了解,想请您帮我讲解一下。非常感谢。
学员;赵云