单例是用来干嘛的? 1.一种设计模式, 2.一般都是资源类,如数据库连接池等, 3.但是要保证一个类仅有一个实例,并提供一个访问它的全局访问点。(只能提供私有的构造器,即保证不能随意创建该类的实例。) 4.单例模式是一种常用的软件设计模式之一,其目的是保证整个应用中只存在类的唯一一个实例。 在程序运行中只能被创建一次,关键在于怎么保证这个类只能被创建一次,其实这个时候就涉及到线程安全问题了
简单的两种实现方式: 饿汉式:
/**
-
单例模式
-
饿汉式 */ public class Simple01 { //类初始化时,立即创建对象 private static Simple01 s=new Simple01(); private Simple01(){
} //方法没有同步,调用效率高 public static Simple01 getInstance(){ return s; } }
懒汉式
/**
- 单例模式
- 懒汉式 */ public class Simple02 { //调用时再创建 private static Simple02 s; private Simple02(){} //线程同步 public static synchronized Simple02 getInstance(){ if(s==null){ s=new Simple02(); } return s; } }
单例模式是一种常用的软件设计模式之一,其目的是保证整个应用中只存在类的唯一一个实例。 在程序运行中只能被创建一次,关键在于怎么保证这个类只能被创建一次,其实这个时候就涉及到线程安全问题了
来源:oschina
链接:https://my.oschina.net/ilovejava/blog/3218025