JAVA中static成员变量赋值的神奇问题
1
2 class data{
3 private static final data mInstance = new data();
4 private static int mx = 0;
5 private data()
6 {
7 System.out.println("mx=" + mx);
8 mx = getVersion();
9 }
10 public static data getInstance()
11 {
12 return mInstance;
13 }
14 public int getVersion()
15 {
16 int v = 0;
17 if (v == 0)
18 {
19 v = 7;
20 }
21 return v;
22 }
23 public int getmx()
24 {
25 return mx;
26 }
27 }
28
29 class Test
30 {
31 public static void getData(StringBuffer sb)
32 {
33 sb.append("hello world ");
34 }
35 public static void main(String args[])
36 {
37 System.out.println(data.getInstance().getmx());
38 }
39 }
~
~
打印结果:
mx=0
0
这样的结果怎么得到了,求教