在Java编程语言中,static
关键字是非常重要的修饰符,可以用于多种不同的地方。可用来修饰变量、方法、代码块以及类。
public static final
修饰的常量)。public class Counter {
// 静态变量
public static int count = 0;
public static final String ERROR_CODE = "SYSTEM_ERROR";
}
Math.sqrt()
或Collections.sort()
。public class MathUtils {
// 静态方法
public static double square(double number) {
return number * number;
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
double result = MathUtils.square(3.0);
System.out.println(result); // 输出9.0
}
}
public class DatabaseConfig {
public static int timeout;
public static String url;
// 静态代码块
static {
System.out.println("Initializing database settings");
timeout = 30; // 以秒为单位
url = "jdbc:mysql://localhost:3306/myDatabase";
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
System.out.println("Database URL: " + DatabaseConfig.url); // 输出初始化的URL
System.out.println("Timeout: " + DatabaseConfig.timeout); // 输出初始化的超时时间
}
}
public class OuterClass {
// 静态内部类
public static class StaticNestedClass {
private int value;
public StaticNestedClass(int value) {
this.value = value;
}
public void display() {
System.out.println("Value: " + value);
}
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass(5);
nestedObject.display(); // 输出值5
}
}
使用static
修饰符的好处包括减少内存使用(共享静态变量而不是为每个实例创建副本)、提供一个全局访问点(例如静态方法和变量)以及无需实例化类即可使用其中的方法和变量。