1.static 关键字
用static声明的成员变量为类变量,储存在方法区,在整个程序中都可以调用该类成员。可以理解为c语言的全局变量。
static可以用于方法,成员变量,代码块。
-
static用于方法,成员变量可以不用创造对象使用。
-
static用于代码块。代码块有静态代码块和实例代码块等,
静态代码块包含static关键词,类似于这种
static { 方法体 }
而实例代码块类似于这样
-
代码块在方法中,当方法被创造对象,代码块自动运行方法体{ 方法体 }
静态代码块只被创造一次
实例代码块被创造多少个对象就被 创建多少次;
2.静态变量和非静态变量的区别
static变量也称为静态变量,静态变量和非静态变量的区别:
-
静态变量被所有对象共享,在内存中只有一个副本,在类初次加载的时候才会初始化
-
非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响
-
静态变量的储存优先于非静态变量,所以无法在非静态变量中调用静态变量