java的static是什么意思

我的GitHub
在 Java 中,static 是一个关键字,用于表示一个成员(变量、方法、嵌套类等)属于类,而不是属于该类的某个特定实例。简言之,static 成员是类级别的,而非实例级别的。下面是一些使用 static 关键字的情况:

static 变量

一个 static 变量是与类关联的,而不是与实例关联的。所有该类的实例共享同一个 static 变量。

class MyClass {
    
    
    static int staticVar = 0;
}

static 方法

一个 static 方法属于类,而不是任何特定实例。因此,它不能访问类的非 static 成员。

public class HelloWorld {
    
    
    static void sayHello() {
    
    
        System.out.println("Hello, World!");
    }
}

static 块

static 块用于初始化 static 变量,它在类加载时只执行一次。

class MyClass {
    
    
    static int staticVar;
    
    static {
    
    
        staticVar = 10;
        System.out.println("Static block executed");
    }
}

static 内部类

你也可以定义一个 static 内部类,这种内部类不能访问外部类的非 static 成员。

public class OuterClass {
    
    
    static class StaticNestedClass {
    
    
        // body of static nested class
    }
}

为什么使用 static?

  1. 共享性:使用 static 变量可以在所有实例间共享数据。这通常用于常量或配置数据。
  2. 无需实例static 方法和变量可以在创建任何实例之前就被访问和修改。
  3. 工具方法static 常用于存放工具方法,这些方法不依赖于实例状态(如 Math.abs())。
  4. 节省内存:由于 static 数据不是每个实例的一部分,所以使用 static 可以节省内存。

注意事项

  • 使用 static 关键字时应谨慎,因为 static 变量在所有实例间共享,可能导致不易追踪的错误。
  • 由于 static 方法不能访问非 static 成员,它们不能被子类重写(override)。

总体来说,static 是一个很有用但需谨慎使用的关键字。理解它的工作方式和适用场景对 Java 编程非常重要。

猜你喜欢

转载自blog.csdn.net/m0_57236802/article/details/132992422