java - 为什么Java和C#不允许在栈上创建对象?

标签 java c# c++ computer-science

为什么我可以用 C++ 在堆栈上创建一个对象,但我不能用其他编程语言(如 Java 或 C#)做到这一点?

最佳答案

原因很简单:在 C++ 中,您必须自己管理所有这些内存分配。对象在哪里分配,什么时候释放。

在 Java 和 C#(实际上是 .NET)中,这要容易得多。对象在堆上分配并在不再需要时被垃圾收集。这消除了一系列问题(内存泄漏和访问释放的对象)

关于java - 为什么Java和C#不允许在栈上创建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28208247/

相关文章:

java - 当一个类实现两个接口(interface)时,接口(interface)具有相同的方法名称但不同的返回类型,为什么它不起作用?

java - 如何在 JavaFX 中设置滚动 Pane 的单位增量?

java - 从数组中抓取单词

C# 开关语法错误

c++ - 将 UINT32 颜色格式从 AaBbGgRr 转换为 AaRrGgBb

java - 如何返回正确的结果和错误列表

c# - 改进枚举到组合框的绑定(bind)(使用 MarkupExtension)

c# - Azure 创建数据磁盘并将文件复制到其中

c++ - 通过指针打印矩阵

c++ - 在创建结构对象时使用 &