java中static{}是什么意思(IT枫斗者)
java中static{}是什么意思(IT枫斗者)
static{}
中的代码表示是在类装载的时候执行一次,且仅执行一次【静态初始化块的作用就是:提升程序性能 】
static关键字
-
static关键字:方便在没有创建对象的情况下进行调用(方法/变量)。
-
在类中,用static声明的成员变量为静态成员变量,也成为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。
-
static修饰的成员变量和方法,从属于类 普通变量和方法从属于对象 静态方法不能调用非静态成员,编译会报错
-
被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。
-
static可以用来修饰类的成员方法、类的成员变量,另外也可以编写static代码块来优化程序性能。
-
static方法不依赖于任何对象就可以直接访问,因此对于静态方法来说,是没有this的,因为不依附于任何对象,既然都没有对象,就谈不上this了,并且由于此特性,在静态方法中不能访问类的非静态成员变量和非静态方法,因为非静态成员变量和非静态方法都必须依赖于具体的对象才能被调用。
static变量
-
static变量也称为静态变量,静态变量和非静态变量的
区别
: -
静态变量被所有对象共享,在内存中只有一个副本,在类初次加载的时候才会初始化 非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响