成员变量其赋值和取值的顺序具有不确定性,可以在方法调用前赋值,也可以在方法调用后赋值,其具体顺序是在运行时发生的,编译器确定不了;
而局部变量,赋值、取值顺序确定。所以局部变量赋值使用,是一种设计约束,可以减少犯错的可能性。同时局部变量存放到栈帧的局部变量表中,可控的赋值和销毁有利于局部变量表空间复用;