【发布时间】:2015-03-28 07:07:48
【问题描述】:
为什么我可以使用 C++ 在堆栈上创建对象,但使用其他编程语言(如 Java 或 C#)却无法做到这一点?
【问题讨论】:
-
因为语言的设计者并没有给你一个方法来做到这一点。 (实际上,Java 至少没有分配对象的概念;对象只是存在)
-
@immibis - 逃逸分析至少在理论上可以在堆栈本身上分配对象。
-
@TheLostMind 我认为问题不在于 JIT 优化。
-
C++ 没有明确使用堆栈的概念,而是定义了不同类型的对象生命周期。所以在这种情况下,您的意思是自动存储。
-
@juanchopanza - 您的评论实际上回答了 OP 的问题。
标签: java c# c++ computer-science