1. Java尽自己的全力保证所有变量都能在使用前得到正确的初始化
char类型直接是null
note:若赋予一个垃圾值,是非常不安全的,所以先不赋值,使用默认值
2. 构建器初始化
note:使用构建器初始化,不妨碍自动初始化的进行
class Counter {
int i;
Counter() {
i = 7; }
这里还是先初始化i=0.然后在将 i 改为7
3. 初始化的顺序
初始化的顺序是由变量在类内的定义顺序决定的
note:需要注意的是,即使有些类的成员变量放在方法(使用了该成员变量)的后面,依然是可行的,因为无论如何,我们是先默认初始化成员变量,再进行构造函数(构建器)的初始化,再是其他函数。
4. 静态变量的初始化----还是挺难的
初始化的顺序是首先static(如果它们尚未由前一次对象创建过程初始化),接着是非static对象。具体也需要和上面的 3.初始化的顺序进行结合
5 明确进行的静态初始化
class Spoon {
static int i;
static {
i = 47; }