类加载的常见加载顺序

简介: 本文通过Java代码示例,讲解静态代码块、局部代码块与构造器的执行顺序。静态代码块随类加载执行且仅一次,优先于主函数;局部代码块在每次创建对象时执行;构造器随后执行。总结:静态 > 局部 > 构造器。


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 开发者
Java一分钟之-Quasar:协程库
【6月更文挑战第12天】Quasar是Java的高性能协程库,通过字节码增强实现轻量级并发模型——协程和通道,降低并发处理的复杂性和资源消耗。本文探讨了Quasar的常见问题,如内存泄漏、死锁和过度使用,提出相应避免策略,并提供了一个简单的协程间数据交换的代码示例。正确使用Quasar能提升程序性能和可维护性。
872 1
|
Linux C++ Windows
c++ 通过域名获取ip(跨平台)
c++ 通过域名获取ip(跨平台)
1381 0
|
4月前
|
存储 缓存 安全
2026阿里云轻量服务器实例规格族:通用型、CPU优化型、多公网IP型、国际型和容量型介绍
阿里云轻量应用服务器升级至200M峰值带宽,提供通用型、CPU优化型、多公网IP型、国际型和容量型5大实例规格族,覆盖网站搭建、企业应用、跨境电商、私有网盘等多种场景,性能全面提升,最低38元/年起,助力开发者高效上云。
343 6
|
Ubuntu TensorFlow 算法框架/工具
如何在Ubuntu上安装TensorFlow 24.04
如何在Ubuntu上安装TensorFlow 24.04
Qt 之未定义标识符“qFlagLocation“解决办法
Qt 之未定义标识符“qFlagLocation“解决办法
|
Rust 网络协议 安全
Rust在系统编程中的案例分享
Rust在系统编程中的案例分享
376 10
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
【8月更文挑战第28天】本文以浅显易懂的语言,带你了解Node.js在后端开发中的应用。从Node.js的基本概念入手,逐步深入到实际的项目开发中,让你对Node.js有更深入的理解。无论你是初学者还是有一定基础的开发者,都能在这篇文章中获得新的启示。
|
存储 缓存 Java
详细解读Androidnomedia问题分析
详细解读Androidnomedia问题分析
512 0
DFS算法及应用(一)
DFS(深度优先搜索)是一种图遍历算法,常用于解决穷举问题,如全排列、迷宫问题、图的连通性等。它沿着树的深度分支进行探索,直至达到叶子节点,若无法继续则回溯。例如,将数字6拆分为3个正整数的递增序列问题可以通过DFS实现,类似地,分糖果问题和买瓜问题同样可以用DFS求解。DFS通常涉及递归或栈结构,通过标记已访问节点避免重复。在编程中,会定义递归函数,设定结束条件,然后枚举可能的情况,并处理下一层节点。
|
Web App开发 数据安全/隐私保护 iOS开发
如何获得iphone手机的UDID
如何获得iphone手机的UDID
279 0