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 - 将日期添加到 Java util 记录器 fileHandler 名称

java - 使用 java DOM 替换/更改 XSD 文件中的元素类型

java - 如何使用 POI api 验证 Excel 中特定标题名称的所有列

c++ - 我必须运行 cmake 两次才能编译项目

c++ - 编译器错误 c++ msys-1.0.dll windows

java - 填充 Hashmap 时超出 GC 开销限制

performance - 标记扫描GC怎么了?

java - 在Java中的BrowserMob中仅获取POST请求/响应

c++ - 用于创建多边形的 C/C++ PNG 库

c# - 对象引用静态成员垃圾处理