码迷,mamicode.com
首页 > 编程语言 > 详细

Java代码执行顺序

时间:2019-12-21 00:37:19      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:public   str   方法   执行顺序   优先执行   prope   代码   优先   虚拟   

代码执行顺序

当父类与子类都有静态代码块,构造方法和构造代码块的时候,程序的执行顺序如下

父类静态代码块->子类静态代码块->父类构造方法->父类构造代码块码块->子类构造方法->子类构造代码块

(先有父亲,后有孩子)

如果是多层的继承关系,就优先执行高层的父类,再递减下来
因为静态代码块在jvm虚拟机加载类的时候就加载,而且静态代码块只被执行一次

  class fu{
    {
        System.out.println("这是父类构造代码块");
    }
    static {
        System.out.println("这是父类静态代码块");
    }
    public fu() {
        System.out.println("这是父类构造方法");
    }


}
class zi extends fu{
    {
        System.out.println("这是子类构造代码块");
    }
    static {
        System.out.println("这是子类静态代码块");
    }
    public zi() {
        System.out.println("这是子类构造方法");
    }
}
public class Static {
    public static void main(String[] args){

        zi z =new zi();
    }
}

执行结果

这是父类静态代码块
这是子类静态代码块
这是父类构造代码块
这是父类构造方法
这是子类构造代码块
这是子类构造方法

Java代码执行顺序

标签:public   str   方法   执行顺序   优先执行   prope   代码   优先   虚拟   

原文地址:https://www.cnblogs.com/blackmlik/p/12075457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!