java - C++ 中的删除和 Java 中的垃圾收集

标签 java c++ garbage-collection jvm

<分区>

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/

相关文章:

java - 在 Spring Boot 1.3.1.RELEASE 中升级到 Hibernate 5.0.6.Final 后嵌入式字段不起作用

c++ - 使用指向 vector vector 的唯一指针成员初始化模板化矩阵类

c++ - CMake 为 UWP 生成时无法获取 VCTargetsPath 的值

c++ - 使用 C++/Objective C++ 库时出现链接器错误

python - 如何在 Python 中检查容器类型对象的循环引用

javascript - 垃圾收集可以在主线程繁忙时进行吗?

java - 最喜欢的联系人 fr0m 联系人 db

Java反射

java - 无法引用默认包之外的生成源类

c# - 我可以告诉 .NET GC 不理会某些线程吗?