本文简单通过一段代码片段介绍一下,实例变量的初始化,实例初始化和静态初始化的顺序。
main函数一共调用了两次foo,那打印出来的结果会是什么样的呢?
static的静态初始化只会在第一次声明时候调用一次的。而其余的变量与初始化的 构造器 都是每次都会调用的。更细节的来看,就是构造器是最后调用的。
实例初始化这样的代码有什么用?
的确,粗一看感觉好像没有什么用,这个实例初始化的代码块可以放在构造器里。如果没有什么需要特殊处理的类似异常的东西,可以直接就在实例变量就初始化了。
但是如果一个类有多个构造器,这段实例初始化的代码就可以节省代码的冗余,不然每个构造器都需要写一个对于某一异常的判断。
通常企业级的软件会在这里放一些记LOG的代码。