<分区>
C++ 中的 delete 与 Java 中的垃圾回收的工作方式相同吗?我的意思是,内部的内存管理部分(在这两种情况下堆中到底发生了什么?)。
<分区>
C++ 中的 delete 与 Java 中的垃圾回收的工作方式相同吗?我的意思是,内部的内存管理部分(在这两种情况下堆中到底发生了什么?)。
最佳答案
C++ 中的 delete 调用使用 new 运算符释放变量占用的 Free Store(堆)上的内存。我们手动完成所有这些(直到我们使用智能指针、C++ 11 等),对于每个新的我们必须做相应的删除。垃圾收集器仅存在于 C++ 11 及更高版本中。 其他语言(Java、C#)中的垃圾回收会自动释放变量占用的内存。在幕后,垃圾收集器会保留变量的引用计数,当引用计数达到 0(或变量超出范围)时,它会释放该变量占用的内存。
关于java - C++ 中的删除和 Java 中的垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32195228/