Java关键字static的详解
static 是什么?
在Java中,static关键字具有多种用途,它主要用来修饰类的成员变量和成员方法。
他是Java内置的常用关键字,实际上java有很多关键字。
public:这是一个访问修饰符,用于声明类、方法或变量是公开的,可以被任何其他类访问。
private:这也是一个访问修饰符,用于声明类、方法或变量是私有的,只能在它自己的类中被访问。
protected:这是另一个访问修饰符,它允许类的成员被它自己的类和子类以及同一个包中的其他类访问。
static:如前所述,static关键字用于创建类级别的变量和方法,它们与类的任何特定实例无关。
final:final关键字用于声明一个变量、方法或类是不可变的。对于变量,这意味着它的值一旦被初始化后就不能被更改。对于方法,它表示该方法不能被子类覆盖。对于类,它表示该类不能被继承。
abstract:abstract关键字用于声明一个方法是抽象的,没有实现。抽象方法必须在抽象类或子类中被覆盖(实现)。抽象类是不能被实例化的类,它至少包含一个抽象方法。
super:super关键字用于访问父类(超类)的成员。它可以在子类的构造方法中使用来调用父类的构造方法,也可以在子类的方法中使用来访问父类的成员。
this:this关键字用于引用当前对象的实例。它可以在实例方法或构造方法中使用来访问当前对象的成员。
void:void关键字用于声明一个方法不返回任何值。它通常用于表示一个方法不返回任何有意义的值,比如执行某种操作但不产生结果。
除了这些关键字之外,Java还有其他一些重要的关键字,比如new(用于创建对象)、return(用于从方法中返回值)、if、else、switch、case、while、for、do、try、catch、finally、throw、throws、import、extends、implements、interface、class、break、continue、default、package、null、true、false等。
static有什么用?
- 类变量(静态变量)
当声明一个类的变量为静态时,这个变量就属于类本身,而不是类的某个实例。这意味着无论创建多少个类的实例,静态变量都只有一个副本。静态变量通常用于存储与类相关但不依赖于任何特定实例的信息。
// 静态变量
public static int staticVariable = 42;
- 静态块
:静态块是在类加载时执行的代码块。它用于初始化静态变量或执行只需在类加载时执行一次的代码。静态块在构造函数之前执行,并且只执行一次,即使创建多个类的实例。
// 静态块
static {
System.out.println("Static block executed.");
}
- 静态方法
类方法(静态方法):与静态变量类似,静态方法属于类而不是类的实例。因此,静态方法可以在没有创建类实例的情况下调用。静态方法通常用于执行与类相关但不依赖于任何特定实例的操作。
// 静态方法
public static void staticMethod() {
System.out.println("This is a static method.");
}
-
内部静态类
在Java中,您可以在一个类中定义另一个静态类。这样的类称为内部静态类。内部静态类可以访问其外部类的静态成员,但不能访问其外部类的实例成员。 -
静态初始化器
静态初始化器是另一种初始化静态变量的方式。它们是在类加载时执行的代码,用于设置静态变量的初始值
static生命周期
在Java中,static关键字用于创建类级别的变量和方法,这些变量和方法与类的任何特定实例无关。
静态变量的生命周期是整个程序的运行期间。这意味着一旦静态变量被创建,它们就会一直存在,直到程序结束。即使创建了类的多个实例,也只有一个静态变量的副本。静态变量通常用于存储与类相关但不依赖于任何特定实例的信息。
总结
总的来说,static关键字在Java中的生命周期是整个程序的运行期间,它允许创建与类相关但不依赖于任何特定实例的变量和方法。这使得静态变量和方法在需要在多个实例之间共享信息或执行操作时非常有用。