news 2026/4/18 6:18:47

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/4/18 8:23:15

Python安装Stable Diffusion 3.5 FP8避坑指南:新手必看的依赖管理方案

Python安装Stable Diffusion 3.5 FP8避坑指南:新手必看的依赖管理方案 在消费级显卡上跑一个10241024分辨率的文生图模型,还能保持每张图8秒内出图?这在过去几乎是奢望。但随着 Stable Diffusion 3.5 FP8 的发布,这一切正成为现实…

作者头像 李华
网站建设 2026/4/18 5:31:44

如何快速掌握NS-USBLoader:从安装到实战的完整指南

如何快速掌握NS-USBLoader:从安装到实战的完整指南 【免费下载链接】ns-usbloader Awoo Installer and GoldLeaf uploader of the NSPs (and other files), RCM payload injector, application for split/merge files. 项目地址: https://gitcode.com/gh_mirrors/…

作者头像 李华
网站建设 2026/4/18 7:05:06

RTL8852BE驱动终极解决方案:告别Linux无线网络连接困扰

RTL8852BE驱动终极解决方案:告别Linux无线网络连接困扰 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Ubuntu系统下Realtek RTL8852BE无线网卡无法正常工作而烦恼吗&am…

作者头像 李华
网站建设 2026/4/17 19:21:37

Py-ART:气象雷达数据处理的全能解决方案

Py-ART:气象雷达数据处理的全能解决方案 【免费下载链接】pyart The Python-ARM Radar Toolkit. A data model driven interactive toolkit for working with weather radar data. 项目地址: https://gitcode.com/gh_mirrors/py/pyart 在气象数据分析领域&a…

作者头像 李华
网站建设 2026/4/18 6:59:49

Wan2.2-T2V-A14B与HuggingFace镜像网站集成部署技巧

Wan2.2-T2V-A14B与HuggingFace镜像网站集成部署技巧 在内容创作正经历AI重构的今天,如何高效生成高质量视频成为企业技术选型的关键命题。尤其是当文本到视频(Text-to-Video, T2V)模型开始从实验室走向生产线,开发者面临的不再只…

作者头像 李华
网站建设 2026/4/2 6:43:03

MapleStory WZ文件编辑完整指南:从入门到精通

MapleStory WZ文件编辑完整指南:从入门到精通 【免费下载链接】Harepacker-resurrected All in one .wz file/map editor for MapleStory game files 项目地址: https://gitcode.com/gh_mirrors/ha/Harepacker-resurrected 想要深度自定义你的MapleStory游戏…

作者头像 李华