1、为了确保成员在使用之前已经初始化,java做的很彻底,如果变量是在方法内部定义的局部变量,如果在使用之前编译器就会报错。这样做只是把该错的机会留给程序员,而不要让系统去隐瞒可能发生的bug。
2、如果primitive(简单类型)是类的成员数据,由于谁都可能调用,所以要求用户在使用之前就初始化是不那现实的,所以系统会自动为其初始化。 所以如果在类里有个引用,如果它没有被初始化,那它会被自动初始化为NULL。
3、指定初始化:就是在定义类的变量的时候为其赋值,当然对非primitive类型的变量也可以为其赋值。如果你使用了一个没有赋值的非 primitive 的变量,那么在运行时会引发空指针异常。