当前位置: 首页 > news >正文

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 代码的基础。

http://www.cnnetsun.cn/news/72017.html

相关文章:

  • 微信小程序表格组件终极指南:5分钟快速上手miniprogram-table-component
  • PySide6 的 QSettings简单应用学习笔记
  • 使用LangChain编排Seed-Coder-8B-Base实现自动化脚本生成
  • 谷歌学术镜像网站资源助力gpt-oss-20b研究论文查阅
  • 抖音直播内容高效保存指南:告别错过精彩瞬间的烦恼
  • 泉盛UV-K5/K6对讲机LOSEHU固件:5大升级功能与终极配置方案
  • 跨平台应用性能深度剖析:Electron 与开源鸿蒙(OpenHarmony)在真实业务场景下的资源调度、启动效率与能效表现对比
  • 广东深圳一家IPO企业重度依赖单一客户,产品结构单一竞争力存疑
  • APK Pure是否适合发布Qwen3-14B移动端应用?可行性分析
  • AutoDock Vina批量分子对接终极指南:从效率瓶颈到高效实战突破
  • 基于Qwen3-32B构建高质量内容生成系统的完整指南
  • 企业微信智能表格高效计算工作人天:日 / 周 / 月全维度公式 + 实操指南
  • RTL8852BE无线网卡驱动:让Linux连接更稳定的终极方案
  • 5分钟快速上手Vue时间轴组件:timeline-vuejs完整使用指南
  • HunyuanVideo-Foley模型调优技巧:降低Token使用量,提升生成效率
  • 基于单片机电机功率测量系统Proteus仿真(含全部资料)
  • MATLAB从零开始实现粒子群优化算法PSO
  • Stable Diffusion 3.5 FP8高分辨率输出实测:1024×1024图像生成全记录
  • 云端部署DeepSeek + 本机Cherry Studio接入
  • 原神圣遗物管理终极指南:椰羊cocogoat工具箱让配装效率翻倍
  • Three.js结合FLUX.1-dev生成动态3D场景纹理资源的技术路径
  • 开源大模型新星|Qwen-Image在GitHub上的star增长趋势分析
  • Dify API调用Qwen-Image-Edit-2509实现企业级图像处理服务
  • Codex API调用成本高?试试免费Qwen3-VL-8B替代方案
  • GitHub Wiki搭建Qwen3-VL-30B开发者知识库
  • 企业采购Qwen3-32B商业授权需要注意哪些条款?
  • 【收藏必备】别再用Copilot骗自己:AI求职的真相,藏在Dify的“深度技术“里
  • HunyuanVideo-Foley开源发布:基于GitHub的智能视频音效生成技术详解
  • 3个技巧告别论文格式困扰:XMU-thesis让学术写作更高效
  • 技术与管理双通道如何建设