java代码执行顺序

java类中的代码执行顺序

  1. 静态变量(静态代码块)->进入main方法->普通成员变量(类代码块)->构造方法。其中,静态变量或静态代码块按声明的先后顺序执行,普通成员变量或类代码块也按声明的先后顺序执行。下面的例子有清晰说明:
    这里写图片描述

  2. 接下来是一个例子

    A.java

public class A{
    public static int a =print(1);
    public int aa=print(2);

    static{
        print(3);
    }

   {
       print(4);
    }

    public A(String str){
        System.out.println(5);
    }

    public static int print(int i){
        System.out.println(i);
        return i;
    }
}

B.java

public class B extends A{
    public static int b=print(6);
    public int bb=print(7);

    static{
        print(8);
    }

    public B(String str){
        super(str);
        System.out.println(str);
    }

    public static int print(int i){
        System.out.println(i);
        return i;
    }

    public static void main(String args[]){
        B b=new B("winner");
    }
}

>

  1. Java虚拟机首先装载父类,初始化父类中的静态变量或静态代码块: 输出1、3
  2. 然后装载子类,初始化子类的静态变量或静态代码块: 输出6、8
  3. 接着如上例所示,这时候要进入main方法,直到遇到new关键字,实例化子类;
  4. 实例化子类过程中,先调用super()实例化父类;
  5. 实例化父类过程中先初始化父类普通成员变量或类代码块: 输出2、4
  6. 然后执行父类构造方法:输出5
  7. super()执行完毕后,按顺序实例化子类普通成员变量或类变量: 输出7
  8. 然后执行子类构造方法中的其他部分: 输出winnner
  9. 此时,new关键字实例化过程结束,接着执行main方法接下来部分。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值