static关键字修饰类成员表示其属于类而非实例,所有对象共享且可通过类名直接访问;静态变量在类加载时初始化,静态方法只能访问静态成员,静态代码块仅执行一次用于初始化,静态内部类不依赖外部类实例。

static 关键字用于修饰类的成员(变量、方法、代码块、内部类),表示该成员属于类本身,而不是某个具体对象。它不依赖实例存在,所有实例共享同一份 static 成员,且可通过类名直接访问,无需创建对象。
static 修饰成员变量
被 static 修饰的变量称为类变量或静态变量。它在类加载时初始化,内存中只有一份,被所有实例共享。
- 声明方式:static 数据类型 变量名;
- 可通过 类名.变量名 直接访问(如
Math.PI) - 不能在 static 上下文中直接访问非 static 成员(比如在 static 方法里不能直接用
this或普通字段) - 常见用途:计数器、配置常量(配合
final)、缓存等
static 修饰成员方法
被 static 修饰的方法称为静态方法,属于类,不依赖对象调用。
当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。
- 声明方式:static 返回类型 方法名(参数) { ... }
- 只能访问 static 变量和其他 static 方法;不能使用
this或super - 典型例子:
Integer.parseInt()、Arrays.sort()、System.out.println() - main 方法必须是
public static void main(String[] args),因为 JVM 启动时不创建对象
static 代码块
static 代码块在类第一次被加载时执行,且仅执行一次,常用于初始化静态资源。
立即学习“Java免费学习笔记(深入)”;
- 语法:static { /* 初始化逻辑 */ }
- 多个 static 块按出现顺序执行
- 适合做一次性加载配置、注册驱动、初始化静态集合等
static 修饰内部类
static 内部类(又称嵌套类)不持有外部类的引用,可独立于外部类实例存在。
- 声明方式:static class InnerClass { ... }
- 可以直接访问外部类的 static 成员,但不能直接访问非 static 成员
- 创建对象时不需要外部类实例:
Outer.Inner obj = new Outer.Inner(); - 适合工具类、与外部类关联不强的辅助类(如
Map.Entry)

















