//简单的单例模式: 饿汉式: 类加载就创建对象
package Run; class Main { public static void main(String[] args) { Single s = Single.getInstance(); Single ss = Single.getInstance(); System.out.println(s); System.out.println(ss); } } class Single{ static Single s = new Single(); private Single() {} public static Single getInstance() { return s;} }
note: 两个对象引用的地址一样,说明来自于同一对象。注意书写getInstance方法时,需要将其静态化,因为外界无法new对象,那么只能通过类来访问。
因为getInstance方法静态了,所以其访问的成员变量也必须为静态。
/* * 懒汉模式,类加载还没有对象 * 延迟加载 : delay-load */ class Single { private static Single s = null; private Single() {} public static Single getInstance() { if ( s == null) s = new Single(); return s; } }
note: 线程不安全!可修改代码,但效率降低。
原文:http://www.cnblogs.com/lfm1996/p/6536250.html