静态成员属于类本身,通过static关键字声明,无需创建对象即可访问。静态变量被所有实例共享,内存中仅有一份副本,如Counter类中的count计数器;静态方法可直接通过类名调用,如MathUtils.add()和circleArea(),只能访问静态成员,不能使用this或super;静态成员生命周期长,适用于工具类、常量定义等场景,但需注意避免内存浪费和数据错误,关键理解:静态 = 属于类,不属于对象。

在Java中,静态方法和静态变量属于类本身,而不是类的实例。这意味着你不需要创建类的对象就可以访问它们。使用 static 关键字来声明静态成员。
静态变量(Static Variables)
静态变量也叫类变量,它被类的所有实例共享。无论创建多少个对象,静态变量在内存中只有一份副本。
例如:
public class Counter {private static int count = 0; // 静态变量
public Counter() {
count++;
}
public static int getCount() {
return count;
}
}
在这个例子中,每次创建一个 Counter 对象,count 的值都会加1。所有对象共享同一个 count 变量。
立即学习“Java免费学习笔记(深入)”;
你可以通过类名直接访问静态变量:
静态方法(Static Methods)
静态方法属于类,可以直接通过类名调用,无需创建对象。静态方法只能直接访问静态变量和调用其他静态方法。
例如:
public class MathUtils {public static int add(int a, int b) {
return a + b;
}
public static double circleArea(double radius) {
return 3.14159 * radius * radius;
}
}
调用这些方法时不需要创建 MathUtils 实例:
int sum = MathUtils.add(5, 3);double area = MathUtils.circleArea(2.5);
使用注意事项
静态成员有其便利性,但也有一些限制和最佳实践:
- 静态方法不能使用 this 或 super,因为它们不依赖于对象实例
- 非静态方法可以访问静态成员,但静态方法不能直接访问非静态变量或方法
- 静态变量生命周期长,容易造成内存浪费或数据错误共享,应谨慎使用
- 常用于工具类、常量定义、工厂方法等场景
基本上就这些。掌握 static 的使用,能让你写出更高效、结构更清晰的Java代码。关键理解:静态 = 属于类,不属于对象。










