先说一下成员变量,成员变量并不需要初始化,而是在类加载的准备阶段赋予默认值,但是局部变量使用前需要初始化,不会默认赋值,为什么这么设计?
成员变量其赋值和取值的顺序具有不确定性,可以在方法调用(取值)前赋值,也可以在方法调用(取值)后赋值,其具体顺序是在运行时发生的,编译器确定不了。而局部变量,赋值、取值顺序确定。所以局部变量赋值使用,是一种设计约束,减少犯错的可能性。如果局部变量默认赋值了,可能会有很多忘记赋值的,从而出现不可预期的情况。
局部变量需要显式赋值,否则编译不了,设计原理分析
最新推荐文章于 2023-01-31 20:17:49 发布