Int的大小为4个字节,如果我在程序中创建一个新的Int将使其内存消耗增加4个字节.对?
但如果我有这门课
public class Dummy{
private int;
}
Run Code Online (Sandbox Code Playgroud)
我的新课程将使用多少内存?如果它是一个结构,内存消耗会更低吗?我认为引用本身也会消耗一些内存.
Ada*_*rth 15
甲单个参考要么发生在32位进程4个字节或64位处理8个字节.引用是类的标准开销(因为它们是引用类型).结构不会引起参考(好吧,忽略任何潜在的拳击)并且通常是其内容的大小.我不记得班级是否有更多的开销,不这么认为.
这个问题深入研究了类与结构(也在问题评论中提供):
如注释中所述,只有类的实例才会消耗此引用开销,并且只有在某处有引用时才会消耗此引用开销.当没有引用时,该项目符合GC的条件 - 我不确定在没有任何引用的情况下类的大小是什么,我认为它是其内容的大小.
实际上,课程没有你可以依赖的真正"大小".而最重要的这不是真的应该使用类或结构的决定因素(但你往往会发现指引指出类型或低于大约16个字节可以适合结构,以上对类趋于).对我来说,决定因素是预期用途.
在谈论结构时,我觉得有必要提供以下链接:为什么可变结构"邪恶"?