java中 static 关键词

发布时间 2023-06-02 15:52:12作者: 盘思动

在Java中,static是一个关键字,可以用于变量、方法和代码块上。

1. 静态变量(static variable)

静态变量是被声明为static的变量。它属于类,而不是属于任何一个对象的。因此,无论创建了多少个类的对象,静态变量只有一份拷贝,所有对象共享同一个静态变量。静态变量可以通过"类名.变量名"的方式访问。

2. 静态方法(static method)

静态方法是被声明为static的方法。同样地,它属于类,而不是属于任何一个对象的。因此,静态方法不能访问非静态成员(如实例变量、实例方法等),而只能访问静态成员(如静态变量、静态方法等)。

3. 静态代码块(static block)

静态代码块是被声明为static的代码块。它会在类被加载时执行,且只会执行一次。通常在静态代码块中进行一些初始化操作。

使用static的注意事项:

  1. static变量通常使用大写字母表示,以便与普通变量区分开来。

  2. 静态方法不能被重写(override),因为它们属于类而不是属于任何一个对象的。

  3. 静态变量和静态方法都可以通过"类名.变量名"或"类名.方法名"的方式访问,而不需要创建任何对象。

  4. 静态成员的生命周期与类的生命周期相同,因此它们会在类被卸载时销毁。

  5. 在多线程环境下,对静态变量的访问必须进行同步处理,否则可能会出现线程安全问题。

class MyClass{
    static int x = 10;
    int y = 20;

    static void myStaticMethod(){
        System.out.println("调用了静态方法!");
    }
}

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println(MyClass.x);
        //System.out.println(MyClass.y);//无法从静态上下文中引用非静态 变量 y
        MyClass.myStaticMethod();
    }
}