美文网首页
Java笔记 | Java代码块执行顺序测试

Java笔记 | Java代码块执行顺序测试

作者: CCCode1997 | 来源:发表于2018-09-11 16:22 被阅读0次

最近笔试常常遇到考察Java代码块执行顺序的题目,网上查看博客错漏百出,特地自己测试了一下。
如有错漏,希望路过的大佬指出来,以便我进行更改。

  先上代码吧!

public class ClassA {
    private static String a = print("A");
    
    static {
        System.out.println(a+":A——静态块");
    }
    {
        System.out.println("A——构造块");
    }
    public ClassA() {
        System.out.println("A——默认构造方法");
    }
    public ClassA(String name) {
        System.out.println("A——带参构造方法");
    }
    
    public static String print(String className) {
        System.out.println(className+"——静态属性");
        return className;
    }
}
public class ClassB extends ClassA{
private static String b = print("B");
    
    static {
        System.out.println(b+":B——静态块");
    }
    {
        System.out.println("B——构造块");
    }
    public ClassB() {
        System.out.println("B——默认构造方法");
    }
    public ClassB(String name) {
        System.out.println("B——带参构造方法");
    }
}
public class ClassTest {

    public static void main(String[] args) {
        System.out.println("start");
        ClassB laughter = new ClassB("laughter");

        System.out.println("------------------");
        ClassB Somnus = new ClassB();
    }
}

  接下来是测试结果

总结

结合我查询的资料以及测试结果,可以得知执行顺序如下:

  1. main 函数作为入口,按行依次执行;
  2. 静态属性 > 静态方法声明 > 静态块;
  3. 动态属性 > 动态方法声明 > 构造块;
  4. 构造方法。

补充说明:

  1. 创建一个对象时,无论是否带参数,都会先调用它的父类(如果存在父类)的默认构造方法。

相关文章

  • Java笔记 | Java代码块执行顺序测试

    最近笔试常常遇到考察Java代码块执行顺序的题目,网上查看博客错漏百出,特地自己测试了一下。如有错漏,希望路过的大...

  • java程序执行顺序

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

  • Java中的代码块,内部类

    代码块 1.概念 Java中用{ }括起来的代码段就是代码块,类里面可以有多个代码块,执行顺序和出现的先后顺序相同...

  • Java初始化块的执行顺序

    初始化块执行顺序检验 检测代码: Github源码:tourJava/src/startTest.java

  • Java程序的顺序问题

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

  • java 代码块顺序

    java 代码块的执行顺序: 静态变量 > 非静态变量静态变量 > 静态代码块 > 非静态代码块父构造 > 子构...

  • Java代码块的执行顺序

    执行顺序首先执行静态代码块接着执行构造代码块最后指向构造方法 静态代码块 >>> 构造代码块 >>>> 构造方法 ...

  • Java代码执行顺序

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

  • 流程控制语句

    条件语句 Java代码块中,程序默认是顺序结构,想要更改执行顺序,可以用条件语句 if条件语句 语法: if条件语...

  • 类初始化顺序-静态代码块、代码块、构造函数、静态成员变量、成员变

    参考文章:Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序 定义: 静态代码块:用sta...

网友评论

      本文标题:Java笔记 | Java代码块执行顺序测试

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