1.常见加载顺序

简介: 这段代码展示了一个名为 `CodeBlockDemo` 的Java公共类。该类包含多种代码块:初始化块、构造函数、静态块及局部块,并演示了它们的执行顺序:静态代码块 > 初始化代码块/构造代码块 > 构造函数。当创建 `CodeBlockDemo` 实例时,会依次显示“初始化代码”、“构造器”。静态代码块随类加载仅执行一次,优先于主函数执行。主函数中创建三个实例,展示了构造过程。

public class CodeBlockDemo

{

   {

       System.out.println("初始化代码");

   }


   CodeBlockDemo()

   {

       System.out.println("构造器");

   }  


   static

   {

       System.out.println("静态代码块");

   }

 

   //运行后输出结果?

   public static void main(String[] args)

   {  

       {

           int a = 10;

           //10

           System.out.println("局部代码块");

       }


       new CodeBlockDemo();

       new CodeBlockDemo();

       new CodeBlockDemo();

   }

}

静态代码块

局部代码块


初始化代码

构造器


初始化代码

构造器

总结:
静态代码块 > 局部(构造)代码块 > 构造器(构造方法)
随着类的加载而执行,而且只一次, 优先于主函数执行

若有收获,就点个赞吧



初始化代码

构造器

相关文章
|
Java
09 SpringBoot外部配置加载顺序
09 SpringBoot外部配置加载顺序
67 0
|
19天前
|
Java
类加载顺序
本题考察Java类加载顺序及多态特性。类加载时,先加载父类静态块,再加载子类静态块,随后按顺序加载父类非静态块、父类构造函数、子类非静态块及子类构造函数。多态情况下,`Base b = new Sub();` 表现为编译时父类特性,运行时子类特性。若子类覆盖父类方法,在父类构造函数中调用该方法时,实际调用的是子类的方法,但此时子类未完全初始化,导致子类变量未赋值,故输出 `null`。示例代码中,因子类构造器未显式调用父类构造器,导致编译错误,需添加 `super("s");` 解决。
13 0
|
5月前
|
Java
类加载的常见加载顺序
这段内容是关于Java代码执行顺序的示例。代码展示了类的静态代码块、构造器和局部构造块的执行优先级:静态代码块先于构造器和局部构造块执行,并且只在类加载时运行一次。主函数执行前,会依次看到静态代码块、局部构造块(初始化变量)和构造器的输出。列表中总结了执行顺序和特点。
|
6月前
|
Java
SpringBoot之内部配置加载顺序和外部配置加载顺序
SpringBoot之内部配置加载顺序和外部配置加载顺序
|
XML Java 数据格式
如何正确控制springboot中bean的加载顺序总结
springboot遵从约定大于配置的原则,极大程度的解决了配置繁琐的问题。在此基础上,又提供了spi机制,用spring.factories可以完成一个小组件的自动装配功能。 在一般业务场景,可能你不大关心一个bean是如何被注册进spring容器的。只需要把需要注册进容器的bean声明为@Component即可,spring会自动扫描到这个Bean完成初始化并加载到spring上下文容器。
JVM-常见加载顺序
JVM-常见加载顺序
|
7月前
|
Java
SpringBoot内部配置加载顺序
SpringBoot内部配置加载顺序
58 0
|
7月前
|
前端开发 Java 微服务
SpringBoot中的配置文件加载顺序
SpringBoot中的配置文件加载顺序
81 0
|
XML JSON 前端开发
springboot 的配置文件加载顺序
springboot 的配置文件加载顺序