在Java中,static是一个关键字,可以用于变量、方法和代码块上。
1. 静态变量(static variable)
静态变量是被声明为static的变量。它属于类,而不是属于任何一个对象的。因此,无论创建了多少个类的对象,静态变量只有一份拷贝,所有对象共享同一个静态变量。静态变量可以通过"类名.变量名"的方式访问。
2. 静态方法(static method)
静态方法是被声明为static的方法。同样地,它属于类,而不是属于任何一个对象的。因此,静态方法不能访问非静态成员(如实例变量、实例方法等),而只能访问静态成员(如静态变量、静态方法等)。
3. 静态代码块(static block)
静态代码块是被声明为static的代码块。它会在类被加载时执行,且只会执行一次。通常在静态代码块中进行一些初始化操作。
使用static的注意事项:
-
static变量通常使用大写字母表示,以便与普通变量区分开来。
-
静态方法不能被重写(override),因为它们属于类而不是属于任何一个对象的。
-
静态变量和静态方法都可以通过"类名.变量名"或"类名.方法名"的方式访问,而不需要创建任何对象。
-
静态成员的生命周期与类的生命周期相同,因此它们会在类被卸载时销毁。
-
在多线程环境下,对静态变量的访问必须进行同步处理,否则可能会出现线程安全问题。
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();
}
}
标签:java,变量,静态,关键词,访问,static,MyClass,静态方法
From: https://www.cnblogs.com/pansidong/p/17452022.html