gpt4 book ai didi

java - 如果没有静态方法或 block 并且没有对象,一个类会获得多少内存

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

在最近的一次面试中,面试官问了我这个问题:

如果没有为类创建对象,并且类中没有静态方法或静态 block ,只有一些实例变量;该类会获得内存吗?如果不是,该类会在 RAM 中获得任何空间吗?

根据我的理解,如果static直接实例化 block 或方法,但如果没有static block 或方法,则不会分配内存。

此外,由于我们还没有创建任何对象,因此不会发生类的实例化

所以我说不会分配内存。

我说得对吗?请确认

最佳答案

will that class get memory?

程序中存在的所有内容都使用内存。

if no, will that class get any space in RAM?

RAM == 内存,所以如果没有 => 没有。

no memory will be allocated.

不会为字段分配内存。需要有一些东西来记录该类已加载。它将有一个默认构造函数(或至少一个构造函数),并且必须去某个地方。

So I said no memory will be allocated, was I right?

如果你证明你的答案是合理的,你可以以任何一种方式争论。 Java 开发人员通常只计算堆内存,因此“否”可能没问题。

顺便说一句,尝试运行一个程序,其中一行加载一个空类。您会发现大约已经创建了 10,000 个对象才能达到这一点。您确实可以争论任何数量的内存。

关于java - 如果没有静态方法或 block 并且没有对象,一个类会获得多少内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36812601/

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