常见加载顺序

简介: 本示例展示了Java中代码块的执行顺序:静态代码块最先执行,仅一次;随后是局部代码块,位于main方法内;每次创建对象时,先执行初始化代码块,再执行构造器。体现了类加载与对象实例化的生命周期顺序。

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();

}

}

输出:


静态代码块

局部代码块


初始化代码

构造器


初始化代码

构造器


初始化代码

构造器

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

目录
相关文章
lyL
|
3月前
|
存储 缓存 算法
零拷贝
本文探讨服务器文件传输的性能优化,传统方法因频繁的上下文切换和内存拷贝导致效率低下。零拷贝技术通过减少系统调用和内存拷贝,提升传输性能,尤其适用于小文件。对于大文件,则推荐异步IO结合直接IO,避免PageCache副作用,实现高并发下的高效传输。
lyL
176 1
零拷贝
|
3月前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用(读完就懂)
Thread.Sleep用于暂停线程执行,但不保证精确唤醒时间。Sleep(1000)不代表1秒后立即恢复,系统需重新调度CPU;而Sleep(0)会触发立刻重新竞争CPU,让出执行权给其他线程,避免界面假死。
115 2
|
3月前
|
敏捷开发 Dubbo Java
需求开发人日评估
本文介绍敏捷开发中工时评估的关键方法——人日估算。涵盖开发、自测、联调、测试及发布各阶段的时间分配,并提供常见需求如Excel导入导出、单表增删改查、跨服务调用等的参考人日,助力团队科学规划迭代周期。(238字)
 需求开发人日评估
|
21天前
|
Web App开发 Java 数据安全/隐私保护
新一代HIS源码医院信息系统一体化程序解决方案——大型
BS架构的医疗信息系统HIS源码,兼容全浏览器与移动终端;覆盖门诊、住院、EMR、药房等全业务场景;支持医保及LIS/PACS等系统对接;采用Spring Cloud+Vue微服务架构,保障高并发与金融级数据安全。
lyL
|
3月前
|
NoSQL Java 测试技术
MongoDB实战演练
本文介绍头条文章评论功能的需求分析与实现,涵盖评论的增删改查、按文章ID查询、点赞功能等。采用MongoDB作为数据库,使用SpringDataMongoDB进行持久层操作,并通过MongoTemplate优化点赞等字段的更新效率,提升系统性能。
lyL
134 0
lyL
|
3月前
|
自然语言处理 fastjson Java
FastJson:大面积故障规避案例
本文记录了一次由Kotlin语法混淆引发的FastJson反序列化重大故障。因误将 `{}` 赋值给Java对象字段,导致FastJson内部静态标记位 `kotlin_error` 被置为true且无法恢复,进而引发全局反序列化失败。问题根源隐蔽,排查耗时两天,凸显多语言混编下对语法细节掌握的重要性,也警示不可盲目信任第三方框架。
lyL
190 0
FastJson:大面积故障规避案例
|
2月前
|
SQL 安全 数据库
GoWind Admin|风行 — 开箱即用的企业级全栈中后台框架:数据权限体系设计与实现
GoWind Admin(风行)是开箱即用的企业级全栈中后台框架,内置五层数据权限体系:租户隔离、业务单元、行级、列级、操作/状态级,支持多租户、ABAC动态策略与非侵入式DataScope引擎,实现安全合规、灵活可扩展的权限管理。(239字)
526 2
lyL
|
3月前
|
Java 大数据
ArrayList扩容机制
本文深入解析Java中ArrayList的add及扩容机制。首次添加元素时,容量从0扩至10;后续通过ensureCapacityInternal和grow方法实现动态扩容,每次扩容为原容量的1.5倍,借助位运算提升性能,并详解size、length等易混淆概念。
lyL
93 1
|
3月前
|
缓存 NoSQL Java
Java 防重放攻击实战:从原理到落地
重放攻击(Replay Attack)是一种常见的网络攻击手段,攻击者通过截取网络中传输的合法请求数据(如API调用参数、令牌等),然后在未授权的情况下重复发送该请求,以达到欺骗服务器、获取非法利益的目的。在Java开发中,重放攻击多发生在HTTP接口(尤其是RESTful API)、RPC调用、分布式系统通信等场景。要防御重放攻击,核心思路是让每个合法请求都具备“唯一性”和“时效性”,使攻击者截取的旧请求无法被服务器正常处理。
695 0
lyL
|
3月前
|
存储 缓存 监控
EFC&CTO:缓存引发数据不一致问题排查与深度解析
EFC客户端在适配CTO测试时发现数据不一致问题,经排查为分布式缓存中版本号回退导致读取旧数据,进而污染pagecache并写坏文件系统。通过维护递增版本号修复,最终问题解决。
lyL
84 1
EFC&CTO:缓存引发数据不一致问题排查与深度解析