静态方法属于类本身,无需实例化即可通过“类名.方法名”调用;它不能访问实例成员、this或super,仅能直接调用其他static成员;常用于工具类、工厂方法和main入口,不可被重写但可被隐藏。

在 Java 中,用 static 关键字修饰的方法就是静态方法,它属于类本身,不依赖于任何对象实例,因此无需创建对象就能直接通过“类名.方法名”调用。
静态方法的声明方式
在方法返回类型前加上 static 修饰符即可:
public static void printInfo() {
System.out.println("这是静态方法");
}
调用时直接写:ClassName.printInfo();
立即学习“Java免费学习笔记(深入)”;
静态方法的使用限制
因为静态方法在类加载时就存在,而实例成员(如实例变量、this、super)依赖对象才存在,所以静态方法中:
- 不能直接访问非 static 的实例变量和实例方法
- 不能使用 this 或 super 关键字
- 只能访问其他 static 成员(变量或方法),或创建对象后间接调用实例成员
常见用途与注意事项
静态方法常用于工具类、工厂方法、主入口等场景:
- 工具方法:如 Math.abs()、Collections.sort()
- 工厂方法:如 LocalDateTime.now() 返回新实例
- main 方法 必须是 public static void main(String[] args),JVM 才能直接启动
- 避免在静态方法中频繁操作实例状态,否则可能引发线程安全或逻辑混乱问题
静态方法 vs 实例方法对比
关键区别在于归属和生命周期:
- 静态方法归类所有,随类加载而存在;实例方法归对象所有,只有对象创建后才可调用
- 多个对象共享同一个静态方法代码段;每个对象都有自己的实例方法执行上下文(含 this)
- 静态方法无法被重写(override),但可以被隐藏(hiding)——子类定义同签名 static 方法时,只是覆盖了可见性,不是多态


















