【发布时间】:2011-10-21 18:36:14
【问题描述】:
我的理解一直是,无论是 C++、C# 还是 Java,当我们使用 new 关键字创建对象时,它都会在堆上分配内存。我认为 new 仅用于引用类型(类),而原始类型(int、bool、float 等)从不使用 new 并且总是在堆栈上(除非它们是成员变量使用new 实例化的类)。但是,我一直在阅读 information,这让我怀疑这个长期存在的假设,至少对于 Java 和 C# 而言。
例如,我刚刚注意到在 C# 中 new 运算符可用于初始化值类型,请参阅 here。这是否是规则的例外,语言的辅助功能,如果是,还会有哪些其他例外?
有人可以澄清一下吗?
【问题讨论】:
-
你能告诉我们你在读什么导致这些疑问吗?
-
我在原始问题中添加了对其中一篇文章的引用
标签: c# java c++ memory memory-management