static关键字
static
关键字你可以理解为是一个形容词,一般是用来形容类、属性,代码块。表示静态的,是一个修饰符静态的
存储在: 方法区里面
static的使用方式
1. static修饰变量
如果一个类的成员变量被
static
修饰了,那么所有该类的对象都共享这个变量。
而且只会初始化一次。
用法:
static 属性;
使用时注意:
(1)和程序同生命周期;
(2)在没有实例化对象时,可以通过类名访问静态成员变量;
(3)也可以通过对象访问静态成员变量,但不论使用的是哪个对象,访问到的都是同一个变量;
(4)静态成员变量在声明时最好初始化,如果不进行初始化,系统会默认初始化为初始值。
(5)static成员变量的初始化顺序按照定义的顺序进行初始化。
2. static修饰方法
如果一个方法被static修饰那么该方法就属于一个类方法,静态方法可以直接通过类名调用
用法:
static 方法(){
}
使用时注意:
(1)静态方法不能使用类的非静态变量,与之相反动态方法可以调用静态和动态的属性和方法。
(2)静态方法可以直接调用静态方法,但是调用普通方法只能通过对象的实例才能调用。
(3)静态成员方法没有this,super引用。因为静态方法不依附于任何对象,是存储于方法区的,所以static修饰方法中不能用this和super关键字
(4)在没有实例化对象时,可以通过类名访问静态成员方法。
3. static静态代码块
在类被加载的时候运行且只运行一次。
用法:
static {
//
}
用法:
static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。一般用于静态变量的初始化。