【发布时间】:2017-05-12 03:12:51
【问题描述】:
变量只在对象创建期间获得内存分配,那么为什么在构造函数之外为变量赋值不会产生错误呢?此外,由于没有创建特定对象,因此该分配值的位置是什么?
【问题讨论】:
-
字段初始化器在构造函数的主体之前运行,仅此而已。请注意,内存分配本身只发生一次,在 any 构造函数执行之前。
-
下次见到James Gosling 时,你会问他为什么选择这种语言。
-
为什么我的问题被搁置了? @波西米亚。我不是问为什么这个规则在 JAVA 中,只是想知道初始化值的位置是什么?请在暂停之前尝试理解我的问题。
-
@Rony 不,你的标题问为什么。这是基于意见的,因为您本质上是在问为什么语言设计者会做出这个决定。你必须让他们找出答案。各种初始化形式的效果都在JLS中有明确记载。
-
我已经对其进行了重构,希望现在它不会出现任何问题。 @波西米亚
标签: java constructor instance-variables