zoukankan      html  css  js  c++  java
  • Java静态变量、静态块、构造块、构造函数、main函数、普通代码块的执行顺序

    测试代码

    public class SingleTest {
    
        public static String v = "StaticValue";
    
        static {
            System.out.println("static静态变量:" + v);
            System.out.println("static静态块");
        }
    
        {
            System.out.println("构造块");
        }
    
        public SingleTest() {
            System.out.println("构造函数");
        }
    
        public void say() {
            System.out.println("普通方法");
        }
    
        public static void main(String[] args) {
            System.out.println("main 开始");
            SingleTest singleTest = new SingleTest();
            singleTest.say();
            System.out.println("main 结束");
        }
    }

    结果

    解释

    JVM虚拟机一启动就会仅加载一次所有static变量,之后仅加载一次所有static代码块。每当有类实例化时,构造块都会早于构造函数执行,然后再执行构造函数。

    结论

    一个类实例化时的执行顺序:
    静态变量 > 静态代码块 > 构造代码块 > 构造函数

    细化执行顺序为:
    静态变量 > 静态代码块 > main函数 > 构造代码块 > 构造函数 > 普通方法

    查看类继承时,静态块、构造块、构造函数等的执行顺序,请点击

    尊重写作权利,转载请注明出处 ^_^
  • 相关阅读:
    [kuangbin带你飞]专题1-23
    ES code study
    ES特点
    CENTOS7命令
    ES单机版安装
    ES安装手册
    数据库三大范式(1NF,2NF,3NF)及ER图
    win10下Spark的环境搭建
    MySQL安装详细图解整理
    MySQL中format()函数
  • 原文地址:https://www.cnblogs.com/convict/p/14484640.html
Copyright © 2011-2022 走看看