news 2026/4/3 1:25:28

Static 关键字笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Static 关键字笔记

在 Java 编程中,static关键字是基础且高频的考点,其涉及的类加载机制、代码执行顺序等内容,直接影响我们对程序运行逻辑的判断。本文结合实操案例,拆解static关键字的核心特性与执行规则。

一、static核心执行规则

static修饰的内容属于类级别的成员,而非对象级别的成员,这是理解其执行逻辑的根本。

  1. 执行时机:静态相关内容(静态变量赋值、静态代码块)在类加载阶段就会执行,早于构造函数、普通方法等所有非静态内容。
  2. 执行顺序:静态内容遵循自上而下的顺序执行,代码定义在上方的先执行,定义在下方的后执行。
  3. 执行次数:静态内容仅在类第一次被加载时执行一次,后续无论创建多少个该类的对象,静态代码都不会重复执行。
  4. 范围界定:并非只有static{}代码块属于静态执行逻辑,类中直接定义的静态变量赋值语句,同样属于静态代码范畴,参与类加载阶段的执行流程。

二、代码实现

结合典型 Demo,我们可以清晰梳理static代码的执行步骤:

  1. 触发类加载:当程序中通过new关键字创建目标类对象时,会触发该类的加载流程。
  2. 执行静态内容:类加载时,按照自上而下的顺序执行所有静态代码:
    • 先执行第一段静态逻辑,输出对应的标识(如案例中的AAA及连接符);
    • 再执行下一段静态变量赋值或静态代码块逻辑,输出对应的内容(如案例中的22);
    • 直至所有静态内容执行完毕,类加载完成。
  3. 执行对象创建流程:类加载完成后,才会调用构造函数,执行对象初始化的非静态相关操作,完成对象的创建。

三、static关键字关键注意事项

  1. 静态内容的访问权限:静态代码块和静态方法中,无法直接访问非静态成员(非静态变量、非静态方法)。原因是静态内容执行时,非静态成员尚未初始化,此时对象还未创建。
  2. 静态变量的共享性:静态变量属于类,被该类的所有对象共享。任何一个对象对静态变量的修改,都会影响其他对象对该变量的读取结果。
  3. 静态方法的调用方式:静态方法既可以通过对象调用,也可以直接通过类名.方法名()的方式调用,推荐使用类名直接调用,更能体现其类级别的特性。

四、static关键字的典型应用场景

  1. 定义工具类方法:如java.util.Arrays中的排序、查找方法,无需创建对象即可调用,简化代码编写。
  2. 定义常量:结合final关键字使用,如public static final double PI = 3.1415926;,实现常量的全局共享。
  3. 实现单例模式:通过静态变量存储单例对象,配合私有构造函数,确保整个程序中只有一个实例。
  4. 静态代码块初始化资源:如加载配置文件、初始化数据库连接池等,在类加载时完成资源初始化,避免重复操作。

掌握static关键字的核心规则,不仅能帮助我们精准预判程序运行结果,更是编写高效、规范 Java 代码的基础。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/15 14:06:07

如何用Seed-Coder-8B-Base提升你的Java开发效率?支持JDK1.8与JDK21

如何用 Seed-Coder-8B-Base 提升你的 Java 开发效率?支持 JDK1.8 与 JDK21 在现代企业级开发中,Java 依然稳坐主力语言的宝座。然而,无论是维护庞大的 JDK 1.8 遗留系统,还是尝试拥抱 JDK 21 中的 record、密封类和模式匹配等现代…

作者头像 李华
网站建设 2026/3/29 2:15:08

如何在5分钟内解锁网易云音乐NCM文件?ncmdump完全操作手册

还在为下载的网易云音乐NCM格式文件无法在其他设备播放而烦恼?ncmdump这款轻量级工具专为解决此问题而生,让你轻松实现NCM格式转换,释放音乐的无限可能。无论你是音乐收藏爱好者还是普通用户,都能快速掌握这一必备技能。 【免费下…

作者头像 李华
网站建设 2026/3/21 3:43:29

C++调用ONNX Runtime加速ACE-Step推理过程

C调用ONNX Runtime加速ACE-Step推理过程 在AI音乐生成逐渐从实验室走向创作一线的今天,一个核心矛盾日益凸显:用户渴望即时反馈——输入一段文字或旋律,希望几秒内听到完整的编曲;而高性能生成模型往往需要数百毫秒甚至更长的推理…

作者头像 李华
网站建设 2026/3/29 11:47:06

Keep开源告警管理平台:从告警风暴到智能运维的蜕变之旅

Keep开源告警管理平台:从告警风暴到智能运维的蜕变之旅 【免费下载链接】keep The open-source alerts management and automation platform 项目地址: https://gitcode.com/GitHub_Trending/kee/keep 凌晨3点,你的手机被第27条告警信息唤醒。服务…

作者头像 李华
网站建设 2026/3/27 17:24:39

STL转STEP完整指南:从3D打印到工程设计的无缝衔接

STL转STEP完整指南:从3D打印到工程设计的无缝衔接 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp 你是否遇到过这样的困境:精心设计的3D打印模型,想要在专业…

作者头像 李华
网站建设 2026/4/1 4:20:19

跨平台开发的工程化挑战:Electron 与开源鸿蒙(OpenHarmony)在大型项目中的构建体系、模块治理与持续交付实践对比

跨平台开发的工程化挑战:Electron 与开源鸿蒙(OpenHarmony)在大型项目中的构建体系、模块治理与持续交付实践对比 引言:从“写一个 Demo”到“维护百万行代码”,工程能力决定生死 在跨平台开发领域,原型验证…

作者头像 李华