扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在 C 和 C++ 中,许多对象一旦声明,就需要编程人员在对象可以安全使用之前给它们分配资源。在对象使用完资源之后,将这些资源释放回自由内存池也是编程人员的责任。如果资源没有释放,当越来越多的资源被不必要地消耗时,就可以说代码泄漏内存。而在另一方面,如果资源过早地释放,则可能会发生数据丢失、其他内存区域破坏和 null 指针异常。
为了防止这些危险的发生,Java 和 C# 都通过一个应用程序来独立地管理所有对象的生命周期。
在 Java 中,JVM 通过跟踪所分配资源的引用来处理未使用的内存的释放。只要 JVM 检测到一个资源不再被一个有效的引用加以引用,该资源就会被当作垃圾回收。
在 C# 中,通过具有与 JVM 类似功能的公共语言运行库 (CLR) 来处理垃圾回收。CLR 垃圾回收器周期性检查内存堆,以查看是否有未引用的对象,并释放这些对象所占用的资源。有关垃圾回收的更多信息,请参见 Garbage Collection:Automatic Memory Management in the Microsoft .NET Framework, 和 Garbage Collection—Part 2: Automatic Memory Management in the Microsoft .NET Framework。
查看本文来源如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者