首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

【单例】单例在全局变量中引述变成了多例

2012-10-29 
【单例】单例在全局变量中引用变成了多例单例在编程中经常使用,但在全局变量中应用会出现一些问题。?例子:pub

【单例】单例在全局变量中引用变成了多例

单例在编程中经常使用,但在全局变量中应用会出现一些问题。

?

例子:

public class Tst {public static void main(String[] args) {A.getInstance();}}class Glbl {static {System.out.println("In class GlblVars");}public static String log = "I love java.";public static A a = A.getInstance();}class A {static int instanceNum = 0;private A() {instanceNum ++;int n = instanceNum;System.out.println(n +" create instance A");System.out.println(Glbl.log);System.out.println(n +" create instance A done");}private static A instance;public static A getInstance() {if (instance == null) {System.out.println("In class A");instance = new A();}return instance;}}

?

public class Tst {public static void main(String[] args) {A.getInstance();}}class Glbl {static {System.out.println("In class GlblVars");}public static String log = "I love java.";public static A a = A.getInstance();}class A {static {System.out.println("In class A");}static int instanceNum = 0;private A() {instanceNum ++;int n = instanceNum;System.out.println(n +" create instance A");System.out.println(Glbl.log);System.out.println(n +" create instance A done");}private static A instance = new A();public static A getInstance() { return instance;}}

?

?

结果:

In class A1 create instance AIn class GlblVarsI love java.1 create instance A done

?

热点排行