对于成员变量也就是instance member来说是没区别的,对象初始化的时候会自动赋值成null。但是对于局部变量也就是local variable来说,不赋值初始化使用编译会报错。
对于一般的对象成员来说 分配好空间都会预先分配一个null值。所以写不写这个没什么特别的区别。但对于final成员来说,他只能被赋值一次,如果这里 写了=null已经算一次赋值了,那么你构造函数里面就不能再给这个final成员赋值。
当执行new为一个对象分配内存时,Java自动初始化所分配的内存空间。对于数值变量,赋初值0。对于布尔变量,初值为false。对于引用,即对象类型的任何变量,使用一个特殊的值null。