gpt4 book ai didi

java - java中对象的内存分配

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

我是 Java 的初学者,我已经完成了 C++。在C++中,成员函数的内存分配是在它们声明为类的一部分时完成的,而不是在创建对象时完成的,当创建对象时,只有实例变量的内存分配是done,即对于实例变量的每个对象内存分配是单独完成的,并且成员函数由所有对象共同共享。在实例变量的情况下,我知道同样的情况发生在 java 中,但是在成员函数的情况下会发生什么?

在 C++ 中;例如如果我们有 2 个实例变量 a 和 b,并且我们创建了 3 个对象 x、y、z,假设我们有一个成员函数 getData(),那么所有 3 个对象都有两个实例变量 a 和 b 的单独副本,但共享 getData() 的公共(public)副本。

比如实例变量,java也是这样,但是成员函数呢?

最佳答案

在 Java 中,方法的字节码对于一个类只存在一次;没有为每个对象复制方法的字节码。那将是不必要和浪费的;程序运行时字节码不会改变。

所以它的工作原理与你所说的 C++ 相同:

... the member functions are shared commonly by all the objects.

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

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