static关键字用于定义类成员,包括静态变量(如计数器)、静态方法(如工具方法)、静态代码块(类加载时执行)和静态内部类(不依赖外部类实例),均属于类而非对象,通过类名访问,提升成员至类级别实现共享与提前使用。

static 关键字在 Java 中主要用于定义与类相关而非与对象实例相关的成员。它不能依赖于具体的对象实例,而是属于类本身。下面介绍 static 可以修饰的具体内容:
1. 静态变量(类变量)
用 static 修饰的变量称为静态变量或类变量。它属于类,而不属于任何对象。所有该类的实例共享同一个静态变量。说明:静态变量在类加载时初始化,只分配一次内存。
- 可以通过类名直接访问,无需创建对象。
- 常用于定义全局配置、计数器等场景。
public class Counter {
public static int count = 0;
}
// 调用方式
Counter.count = 1;
2. 静态方法(类方法)
用 static 修饰的方法称为静态方法。它可以直接通过类名调用,不需要创建类的实例。说明:静态方法只能访问静态成员(变量或其他方法),不能直接访问非静态成员。
3. 静态代码块
static 后跟一对大括号,称为静态代码块。它在类被加载时执行,且只执行一次。用途:常用于初始化静态资源、加载驱动、读取配置文件等。
立即学习“Java免费学习笔记(深入)”;
- 多个静态代码块按书写顺序执行。
- 优先于构造函数和实例代码块执行。
static {
System.out.println("类加载时执行");
}
4. 静态内部类
static 可以修饰内部类,称为静态嵌套类。它不依赖外部类的实例即可创建。说明:非静态内部类必须通过外部类对象来创建,而静态内部类不需要。
- 静态内部类中不能直接访问外部类的非静态成员。
- 适合用来组织代码结构,例如工具类的嵌套定义。
public class Outer {
static class Inner {
void show() {
System.out.println("静态内部类方法");
}
}
}
// 创建方式
Outer.Inner obj = new Outer.Inner();
基本上就这些。static 不可用于修饰局部变量、外部类(顶层类)、构造方法或普通类的实例成员。它的核心作用是将成员从实例提升到类级别,便于共享和提前使用。










