gpt4 book ai didi

java - 在堆(Java)上创建对象后是否调用对象的构造函数?

转载 作者:行者123 更新时间:2023-12-02 00:52:32 25 4
gpt4 key购买 nike

当你通过调用构造函数实例化一个新对象时,即Foo bar = new Foo(var);

何时实际调用与对象创建堆相关的构造函数中的代码?当构造函数修改bar的成员变量时,变量的存储空间是否已经分配并包含默认值?

最佳答案

一旦调用new,它就知道需要为类型变量(在您的例子中为Foo)分配多少内存到堆中。一旦分配了内存,才设置值。想想看,如果你没有内存给成员变量,你还怎么给成员变量赋值呢?如果没有内存 new 会抛出异常,需要处理。

流程:

  1. JVM 看到
  2. 在堆上分配内存来存储对象(Ref 类型)
  3. 分配默认值
  4. 如果对象类型分配null
  5. 调用构造函数

关于java - 在堆(Java)上创建对象后是否调用对象的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2419286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com