Java 有垃圾收集,为什么 C 和 C++ 语言没有垃圾收集?

标签 java c++ c

我知道 C 语言中有 malloc/free 之类的东西,以及 C++ 语言中用于内存管理的 new/using-a-destructor 之类的东西,但我想知道为什么这些语言没有自动内存的“新更新”管理(垃圾收集)? java有垃圾收集功能,为什么没有C和C++

有人能简单解释一下吗?

最佳答案

C 和 C++ 被设计为接近金属,并且在设计它们时,垃圾收集几乎不是一种选择。当您想到垃圾收集时,必须有一个用于引用计数并跟踪分配的数据结构,这反过来又会增加内存和性能的开销。当设计 C 和 C++ 时,这些并不是目标,因为它更接近硬件。

比亚尼·斯特鲁斯特鲁普 said :

I had hoped that a garbage collector which could be optionally enabled would be part of C++0x, but there were enough technical problems that I have to make do with just a detailed specification of how such a collector integrates with the rest of the language, if provided. As is the case with essentially all C++0x features, an experimental implementation exists.

关于Java 有垃圾收集,为什么 C 和 C++ 语言没有垃圾收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29789669/

相关文章:

java - 获取上个月的第一个和最后一个日期

在 Jenkins 中运行 mvn 测试时,maven-surefire-plugin 的 Java 版本问题

java - Gradle在eclipse中找到错误的maven存储库url

c++ - 如何防止类被 malloc,只允许新的?

c - 以下代码中的 EOF 是什么?

java - 具有Snappy压缩的HBase表中的BulkLoad获取UnsatisfiedLinkError

android - 如何将 Mat 数组从 JNI 返回到 Java

c++ - 函数指针在C和C++中都立即返回吗?

c++ - CPU 缓存感知 C++/C 编程

c - 仅在声明中将指针指定为限制?