设计模式——单例模式
单例模式 确保一个类只有一个实例,并提供一个全局访问点.
public class Test { private static Test test = null; private Test() { } public static Test getInstance() { if (test == null) { test = new Test(); } return test; }
//多线程同时访问下面代码.会产生多个实例 public static Test getInstance() { if (test == null) {test = new Test();}return test;}
public class Test {private static Test test = null;private Test() {}public synchronized static Test getInstance() { if (test == null) {test = new Test();}return test;}}
public class Test { //volatile标示,多程线下变量不能同时修改private volatile static Test test = null;private Test() {}public static Test getInstance() { //只有当实例不存在的时候,才执行同步代码块.生成实例.缩小同步范围提高性能 if (test == null) {synchronized(Test.class){if(test==null){test = new Test();}}}return test;}}
public class Test { //直接初始化静态变量private static Test test = new Test();private Test() {}public static Test getInstance() {return test;}}