`
shang7053
  • 浏览: 530 次
文章分类
社区版块
存档分类
最新评论

java类加载顺序

    博客分类:
  • java
阅读更多

在csdn看到一篇文章,原文地址http://bbs.csdn.net/topics/390973527。

java代码:

public class StaticTest {
    public static int k=0;
    public static StaticTest s1=new StaticTest("s1");
    public static StaticTest s2=new StaticTest("s2");
    public static int i=print("i");
    public static int n=99;
    public int j=print("j");
     
    {
        print("构造块");
    }
     
    static
    {
        print("静态块");
    }
     
    public static int print(String s)
    {
        System.out.println(++k+":"+s+"\ti="+i+"\tn="+n);
        ++n;
        return ++i;
    }
     
    public StaticTest(String s)
    {
        System.out.println(++k+":"+s+"\ti="+i+"\tn="+n);
        ++i;
        ++n;
    }
 
    public static void main(String[] args) {
        new StaticTest("init");
    }
}

 而结果是

1:j    i=0    n=0
2:构造块    i=1    n=1
3:s1    i=2    n=2
4:j    i=3    n=3
5:构造块    i=4    n=4
6:s2    i=5    n=5
7:i    i=6    n=6
8:静态块    i=7    n=99
9:j    i=8    n=100
10:构造块    i=9    n=101
11:init    i=10    n=102

 初一看有点懵了,很少接触这个,自己原样摘下来,debug了下流程。不知道图片能不能显示,自己看到的结果是这样也不知道对不对,先留着备忘吧。总结如下:



 

  • 大小: 437.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics