发布时间:2022-08-19 12:39
####类加载时机:
代码块的分类,根据其位置和声明方式的不同,可以分为:
定义在类的成员位置,使用以下声明方式声明的代码块,称之为构造代码块。构造代码块内部属于局部位置,在里面定义变量,就是一个仅在构造代码块中生效的局部变量。
构造代码块的作用
随着构造器的执行而执行,用于在创建对象过程当中,给成员变量赋值!!
总结给成员变量赋值的几种方式(创建对象过程中):
static{
}
**随着类加载的过程而执行,静态代码块可以看成是一个在类加载过程中,会自动调用的静态方法!用于给静态成员变量赋值!**想要一段语句,能够在类加载过程中自动被调用,需要使用静态代码块,而不是静态方法!!
这里总结一下给静态成员变量赋值的几种方式(类加载时期):
使用场景
复杂的静态成员变量的赋值。
JavaEE中加载JDBC驱动(最经典的),也可能是最常见的。
如果有一段代码,在类的全局,从始至终,只运行一次,可以写到静态代码块中。(依赖于类加载只有一次的原理)
比如一些初类的始化工作,就可以放在静态代码块中完成。
最常见的就是类System的初始化