gpt4 book ai didi

java - 对象的内存是如何在内部分配的?

转载 作者:行者123 更新时间:2023-11-30 08:59:35 25 4
gpt4 key购买 nike

我想了解 JVM 内部是如何分配内存的。我读过"new"字节码指令就是这样做的。一旦执行了"new"指令,对堆上分配的内存进行了什么样的簿记?有没有办法在不使用 new(也许是 ReflectionFactory)的情况下创建类的实例?

最佳答案

有没有办法在不使用 new(也许是 ReflectionFactory)的情况下创建类的实例?

没有。在 Java 中,您使用 new 创建一个实例。

一旦执行了“new”指令,分配在堆上的内存会进行什么样的簿记?

Java 使用垃圾收集器,内存模型记录在 JLS-17.4 Memory Model 中这说(部分)

A memory model describes, given a program and an execution trace of that program, whether the execution trace is a legal execution of the program. The Java programming language memory model works by examining each read in an execution trace and checking that the write observed by that read is valid according to certain rules.

The memory model describes possible behaviors of a program. An implementation is free to produce any code it likes, as long as all resulting executions of a program produce a result that can be predicted by the memory model.

编辑

如评论中所述,可能有其他指令可以在不使用显式 new 的情况下创建实例,但这样创建的实例仍然遵循指定的 Java 内存模型。

关于java - 对象的内存是如何在内部分配的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27162872/

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