java - 垃圾收集与非垃圾收集编程语言

标签 java c garbage-collection

因此,如果我理解得很好,垃圾收集会自动释放程序不再使用的对象。就像 java 中的垃圾收集器。

我听说在像 C 这样不支持垃圾回收的语言中,程序可能会发生内存泄漏并随后耗尽内存。

那么程序员在使用像 C 这样不支持垃圾回收的语言时犯的错误是什么?我猜想在对象不再使用后不会释放它们。但是,由于缺少垃圾收集器,我们只能犯这些错误吗?

最佳答案

  • 分配你需要的东西

  • 不取消分配您不再需要的东西(因为您没有很好地跟踪分配/使用/释放)

  • 重新分配已存在事物的新实例(未正确跟踪的副作用)

  • 取消分配您已经释放的内容

  • 取消分配不存在的东西(空指针)

可能还有更多。关键是:管理内存很棘手,最好使用某种跟踪机制和分配/释放抽象来处理。因此,您不妨将其内置到您的语言中,这样它可以使您轻松愉快。手动内存管理并不是世界末日——它当然是可行的——但现在,除非你正在编写实时代码、硬件驱动程序,或者(也许,可能)最新的超优化核心代码游戏,那么体力劳动是不值得的,除非作为学术练习。

关于java - 垃圾收集与非垃圾收集编程语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1424660/

相关文章:

java - 调试 jetty 应用程序

java - 在黑莓中读/写文件

java - 优化并找到这个不等式的计算

c - 当 tcp 服务器等待数据时,如何让程序每 10 毫秒读取一次传感器

c++ - 为什么 −π < atan2(y, x) ≤ π 而对于直线我们真的只需要从 0 到 π?

android - 应用程序退出时如何销毁静态字段?

java - 如何在 swt.browser 中启用左键单击拖动或右键单击

java - 如何从警报对话框中的按钮开始新 Activity ?

java - 垃圾收集: need more explanation

java - Java对象数组是如何使用的?