类加载机制
类加载相关
静态代码块
定义在类中方法外, 静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。
该类不 管创建多少对象,静态代码块只执行一次.
一个类中的静态代码块可以有多个,位置可以随便放,
它不在任何的方法体内,
JVM加载类时会执行这些静态的代码块,
如果静态代码块有多个,
JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。
静态方法属于类本身,
非静态方法属于从该类生成的每个对象。
如果您的方法执行的操作不依赖于其类的各个变量和方 法,
请将其设置为静态(这将使程序的占用空间更小)。
否则,它应该是非静态的。
静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例 方法;实例方法则无此限制
静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。
静态代码块只在第一次new 执行一次,之后不再执行,而非静态代码块在每new一次就执行一次。
静态代码块是自动执行的而静态方法是被调用的时候才执行的.
非静态代码块与构造函数的区别是:
非静态代码块是给所有对象进行统一初始化,
而构造函数是给对应的对象初始化,因 为构造函数是可以多个的,
运行哪个构造函数就会建立什么样的对象,
但无论建立哪个对象,都会先执行相同的构造代码 块。
也就是说,构造代码块中定义的是不同对象共性的初始化内容。
我对任何唾手而得,快速,出自本能,即兴,含混的事物没有信心。我相信缓慢,平和,细水长流的力量,踏实,冷静。我不相信缺乏自律精神和不自我建设,不努力,可以得到个人或集体的解放。