1.常见加载顺序

简介: 本文通过Java代码示例讲解类加载过程中的执行顺序:静态代码块最先执行,仅一次;随后是实例初始化代码块;最后调用构造器。局部代码块在方法内按顺序执行。帮助理解Java对象创建时各代码块的运行时机与优先级。

1.常见加载顺序


Java

运行代码复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

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

运行代码复制代码

1

2

3

4

5

6

7

8

9

10

11

静态代码块

局部代码块


初始化代码

构造器


初始化代码

构造器


初始化代码

构造器

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

若有收获,就点个赞吧


相关文章
|
1天前
|
缓存 算法 Java
线程池
线程池是一种池化技术,通过复用线程减少创建和销毁开销,提升多线程编程效率。它由Executor框架支持,核心实现为ThreadPoolExecutor,可管理线程生命周期、任务队列与调度策略。ScheduledThreadPoolExecutor在此基础上扩展了周期性任务调度能力,借助DelayedWorkQueue实现延迟执行。Executors提供多种工厂方法,便于创建适配不同场景的线程池,如固定大小、缓存型或单线程池。合理使用线程池能有效控制系统资源消耗,避免线程过度切换,是高并发编程的重要基础。
|
1天前
|
存储 JSON NoSQL
3-MongoDB常用命令
本文介绍MongoDB常用操作命令,涵盖数据库与集合的创建、查看、删除,以及文档的增删改查、分页、排序和统计查询。以文章评论系统为例,演示数据插入、更新、条件查询及投影、分页显示等核心功能,帮助快速掌握MongoDB基本用法。
3-MongoDB常用命令
|
2天前
|
NoSQL Java 测试技术
5-MongoDB实战演练
本课程以某头条文章评论业务为场景,基于MongoDB实战实现评论的增删改查、按文章ID查询、分页加载及点赞功能。采用SpringDataMongoDB与MongoTemplate优化数据操作,提升性能,并结合索引优化查询效率。
 5-MongoDB实战演练
|
2天前
|
uml C语言
系统时序图
时序图(Sequence Diagram)是UML中描述对象间消息传递时间顺序的交互图,横轴为对象,纵轴为时间。它用于展示系统动态协作过程,强调交互的时间先后关系,直观呈现并发行为。主要元素包括角色、对象、生命线、控制焦点和消息等,广泛应用于软件设计建模。
系统时序图
|
2天前
|
消息中间件 存储 数据挖掘
应用架构图
本文介绍应用架构图的设计原理,涵盖单体与分布式架构模式。重点解析展现层、业务层、数据层及基础通用层的分层设计,阐述系统间调用关系与外部依赖,明确应用边界,指导技术方案落地。
|
2天前
|
消息中间件 运维 物联网
语音通知
语音通知服务适用于科技公司服务器或物联网设备异常时的告警通知。通过语音电话形式,向处理人播报预设模板内容,支持变量替换实现个性化提醒。需开通语音服务并申请资质、话术、号码及模板,可通过API发起呼叫并查询记录,支持主动查询与消息回执两种结果获取方式,提升运维响应效率。
语音通知
|
1天前
|
项目管理 开发者
业务架构图
业务架构图是梳理业务层级与关系的工具,通过分层、分模块、分功能,抽象出业务核心结构,明确各部分职责与协作,服务于客户理解与系统开发,是连接业务与技术的重要桥梁。
Day07
简介:本文讲解CAP与BASE理论核心要点,阐述分布式系统中一致性、可用性与分区容错性的权衡,解析Seata AT模式的执行流程,并探讨MQ消息防丢失、重复消费及积压处理等关键问题。
Day07
|
1天前
|
SQL 缓存 Java
汇总
本文汇总了MyBatis核心配置与使用要点,涵盖属性优先级、多环境配置、事务管理、映射关系(一对一、一对多等)、分页策略(逻辑与物理分页)、缓存机制及执行器类型,结合XML配置与实际应用场景,助力高效开发。
|
1天前
|
存储 Java
常量池
常量池是Java类文件中用于存储编译期生成的各种字面量和符号引用的区域,包括字符串、基本数据类型值、类和方法的符号信息等,是实现高效内存管理和运行时解析的重要机制。