美文网首页
java中类以及方法的加载顺序

java中类以及方法的加载顺序

作者: 乐百事52淑熙 | 来源:发表于2017-07-06 21:16 被阅读0次

先看下面的代码:

public class Test {

public static int a =0 ;

static {

a = 10;

System.out.println("静态代码块执行a="+a);

}

{

a = 8;

System.out.println("非静态代码块(构造代码块)在执行a="+a);

}

public Test(){

this("调用无参构造方法,a="+ a);

System.out.println("无参构造方法在执行a="+ a);

}

public Test(String n){

this(n ,"调用带参构造方法1,a="+ a);

System.out.println("带参构造方法1在执行a="+ a);

}

public Test(String s1, String s2){

System.out.println(s1 + "," +s2);

}

public static void main(String[] args){

Test test = null;

System.out.println("下面new一个Test实例:");

test = new Test();

}

}

在我编译运行的时候,方法的加载顺序如何呢?先看一下打印信息:

静态代码块执行a=10

下面new一个Test实例:

非静态代码块(构造代码块)在执行a=8

调用无参构造方法,a=10,调用带参构造方法1,a=10

带参构造方法1在执行a=8

无参构造方法在执行a=8

首先打印静态代码块的内容,因为在虚拟机在首次加载Java类时,会对静态代码块、静态成员变量、静态方法进行一次初始化(静态间按顺序执行)。

然后打印非静态内容,先是执行有this()的构造方法,因为此时构造方法还未初始化,没有结果。再按顺序执行其余代码块。

每天进步一点点。

推荐微信公众号【排骨肉段】,记录日常的美好。

相关文章

网友评论

      本文标题:java中类以及方法的加载顺序

      本文链接:https://www.haomeiwen.com/subject/vkfxhxtx.html