java代码块分析
代码块: 在程序中(类/方法),使用{}括起来的一段代码.
而根据代码块存在的位置,和修饰符,分三类:
在代码块中定义的变量的的作用范围,就只在该代码块有效.
1):局部代码块: 在方法中定义的代码块,一般的表现为if,while,for等语句.
2):初始化代块(构造代码块): 在类中直接定义,和方法是平行关系.用来做初始化操作.
在创建该初始化代码块所在类的对象的时候,执行,创建N个对象,则执行N次.
创建对象时,优先于构造器执行.
开发中,不推荐使用,即使要在创建对象的时候做初始化操作,我们一般在构造器中完成即可.
3):静态代码块:
使用static修饰的初始化代码块.
当静态代码块所在类的字节码被加载进JVM,就立马执行静态代码块,而且只会执行一次.
一般的,做静态资源的初始化,加载文件,加载资源.
静态代码块优先于main方法执行.
而根据代码块存在的位置,和修饰符,分三类:
在代码块中定义的变量的的作用范围,就只在该代码块有效.
1):局部代码块: 在方法中定义的代码块,一般的表现为if,while,for等语句.
2):初始化代块(构造代码块): 在类中直接定义,和方法是平行关系.用来做初始化操作.
在创建该初始化代码块所在类的对象的时候,执行,创建N个对象,则执行N次.
创建对象时,优先于构造器执行.
开发中,不推荐使用,即使要在创建对象的时候做初始化操作,我们一般在构造器中完成即可.
3):静态代码块:
使用static修饰的初始化代码块.
当静态代码块所在类的字节码被加载进JVM,就立马执行静态代码块,而且只会执行一次.
一般的,做静态资源的初始化,加载文件,加载资源.
静态代码块优先于main方法执行.
----->main方法,是在字节码被加载进JVM之后,再调用的.
eg: