美文网首页
java类执行顺序

java类执行顺序

作者: jackzhoud | 来源:发表于2017-04-27 09:45 被阅读0次

加载器第一次加载某一个类时,执行顺序如下:

  1. 先执行父类的静态变量和静态代码块,如果有初值为其赋值,没有就赋值默认初始值
  2. 执行当前类的静态变量和静态代码块,如果有初值为其赋值,没有就赋值默认初始值
  3. 执行当前类成员的默认赋值,int-0, boolean - false等
  4. 执行当前类的构造方法,显示或者掩式调用父类的构造方法,如果构造方法代码块中有this,则在父类构造中就表示调用父类的属性,子类中就是调用子类的属性;如果父类还有父类的话,会调用它的父类构造方法
  5. 执行父类的非静态成员赋默认的初始值, int -0 boolean-false等
  6. 如果父类成员有显示赋值,则为其赋值
  7. 执行父类构造方法的其他代码块
  8. 如果子类成员有显示赋值,则为其赋值
  9. 执行子类构造方法其他代码块
    出个题考考:
public class Test extends father{

    int i = 222;
    
    public Test(){
        super();
        display();
        this.display();
    }
    
    public void display(){
        System.out.println(i+"--");
    }
    
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new Test();
    }

}


class father{
    private int i = 2;
    
    public father(){
        System.out.println(this.i);
        display();
        this.display();
    }
    
    public void display(){
        System.out.println(i + "88");
    }
}

先自己思考思考

答案在这儿:
2
0--
0--
222--
222--

总结:

  1. 静态变量先父类后子类
  2. 这儿精简重点:
public father(){
        // 当前类成员默认赋初值
        // i =0

        //掩式或者显示调用父类构造方法,父类的构造方法也是如下步骤的
        super();
        
        // 当前类成员显示赋值,如果存在的话
        i = 2;
        //其他代码块
        display();
    }

搞定,如有不对请指正

相关文章

  • java程序执行顺序

    Java 类中代码的执行顺序深入了解Java程序执行顺序 单个类: static变量—>Static代码块—> m...

  • java类执行顺序

    加载器第一次加载某一个类时,执行顺序如下: 先执行父类的静态变量和静态代码块,如果有初值为其赋值,没有就赋值默认初...

  • Java类执行顺序

    执行结果

  • Java程序的顺序问题

    一、Java中的执行顺序 二、Java中的赋值顺序 一、Java中的执行顺序 1.静态块2.块3.构造器4.父类构...

  • java类成员执行顺序

    非继承关系实例化初始化顺序:1.静态域字段,只在第一次实例化前执行。2.静态代码块,只在第一次实例化前执行。3.普...

  • 简述java类执行顺序

    1.父类静态代码块(只进行一次) 2.子类静态代码块(只进行一次) 3.父类属性类的静态代码块(只进行一次) 4....

  • Java 继承类执行顺序

    时不时就忘记 这个顺序,那就把代码敲出来 执行一下。 执行结果

  • 安卓面试概要点

    Java基础 访问修饰符 √ 类加载深入理解Java类加载器ClassLoaderJava中类加载的执行顺序 泛型...

  • Java类加载的执行顺序

    一. 类初始化 首先定义测试类Test.java,定义静态变量、代码块、静态代码块、构造函数和静态方法 : 然后调...

  • Java代码执行顺序

    java中子类继承父类程序执行顺序问题 Java中,new一个类的对象,类里面的静态代码块、非静态代码、无参构造方...

网友评论

      本文标题:java类执行顺序

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