单例模式的几种实现方式的对比

来源:互联网 发布:php require 语言结构 编辑:程序博客网 时间:2024/06/08 16:26

(一)如果不考虑多线程,那么可以有如下两种写法

①(饿汉式:也就是我一上来就去new一个对象)

public class SignleTest {/** * @param args */public static void main(String[] args) {Signleton signleton1 = Signleton.getInstance();Signleton signleton2 = Signleton.getInstance();System.out.println(signleton1 == signleton2);}}class Signleton {private static Signleton signleton = new Signleton();private Signleton() {}public static Signleton getInstance() {return signleton;


②(懒汉式:也就是我需要getInstace的时候才去new出一个对象)

public static void main(String[] args) {Signleton signleton=Signleton.getInstance();Signleton signleton2=Signleton.getInstance();System.out.println(signleton==signleton2);}}class Signleton{private static Signleton signleton=null;private Signleton (){};public  static synchronized Signleton getInstance(){if(signleton==null){synchronized (Signleton.class) {//延迟加载System.out.println("new 方法调用");signleton=new Signleton();}}return signleton;}}

 

 

原创粉丝点击