1.什么是代码块
在类或者方法中,直接使用{}括起来的一段代码,表示一块代码区域,代码块里变量属于局部变量(没有默认初始值),只在自已所在的区域内(前后的{})有效。
根据代码块定义的位置不同,我们又分为三种形式:
1.局部代码块
直接定义在方法内部的代码块。一般的,我们不会直接使用局部代码块的,只不过我们会结合if,while,try等关键字联合,表示一块代码区域。
2.初始化代码块(构造代码块)
直接定义在类中。每次创建对象的时候都会执行初始化代码块,每次创建对象都会调用构造器,在调用构造器之前,会先执行本类中的初始化代码块。我们一般不使用初始化代码块,主要是代码不美观,即使要做初始化操作,我们一般在构造器中做即可,如果做初始化代码比较多,此时构造器的结构比较混乱,专门定义一个方法做初始化操作,然后再在构造器中调用即可。
3.静态代码块:使用static修饰的初始化代码块。在主方法执行之前执行静态代码块,而且只执行一次。main方法是程序的入口,为什么静态代码块优先于main方法执行?主要是因为静态成员随着字节码的加载也加载进JVM,此时main方法还没有执行,因为方法需要JVM调用,先把字节码加载进JVM,而后JVM再调用main方法。一般我们用来做初始化操作,加载资源、配置文件等。