关键区别 - 处置()vs最终确定()
这关键区别在dispose()和最终确定()之间dispose()必须由程序员明确调用,而最终确定()则由垃圾收集器在摧毁物体之前。
Dispose()是关闭或发布未管理资源的方法,例如文件,对象持有的流。最终确定是在对象被破坏之前对当前对象持有的未管理资源进行清理操作的方法。
内容
1。概述和关键差异
2。什么是dispose()
3。什么是最终确定()
4。dispose()和最终确定()之间的相似性
5。并排比较 - 表格形式()vs finalize()
6。概括
什么是dispose()?
最重要的优势之一.NET框架是提供自动垃圾收集。它会自动释放未使用的对象的内存。在编程语言(例如C ++)中,程序员必须自己处理内存管理。但是,以.NET框架构建的C#等语言提供了垃圾收集器。它有助于管理内存。它不能用来释放非管理的内存资源。Dispose()方法可用于完成此任务。
Dispose()方法可用于释放资源,例如数据库连接,文件处理程序等。此方法未自动调用。因此,程序员应实现此方法。一旦调用了此方法,特定非管理资源的内存就会发布。该方法在接口IDISPOSOS中声明。
什么是最终确定()?
当不进一步使用对对象的引用时,最终化方法仅由垃圾收集器调用。在破坏对象之前,该方法是调用的。该方法是在驱动器。最终化方法在Java.lang.Object类中定义。该方法被称为保护。避免其他班级访问的访问并不是公开的。总体而言,最终确定方法可以最大程度地减少程序的性能,因为它不会立即释放内存。
dispose()和最终确定()之间的相似性是什么?
- dispose()和finalize()均可用来释放为未托管资源分配的内存。
dispose()和最终确定()有什么区别?
dispose()vs finalize() |
|
Dispose()是关闭或发布未管理资源的方法,例如文件,对象持有的流。 | 最终确定是在对象被破坏之前对当前对象持有的未管理资源进行清理操作的方法。 |
客观的 | |
调用未管理资源时,使用处理方法。 | 最终化方法用于在对象被破坏之前释放非管理资源。 |
定义的界面或类 | |
dispose()在接口IDISPOSABLE接口中定义。 | finalize()在java.lang.object类中定义。 |
调用方法 | |
处理方法由程序员调用。 | 最终化方法由垃圾收集器调用。 |
访问说明符 | |
处理方法是公开的。 | 最终化方法受到保护。 |
速度 | |
处置方法被立即调用。 | 最终化方法被缓慢调用。 |
表现 | |
处理不会最大程度地减少程序的性能。 | 最终化方法可能最大程度地减少了程序的性能。 |
摘要 - 处置()vs最终确定()
本文讨论了C#中处置和最终化方法之间的差异。dispose()和finalize()之间的区别在于,在销毁对象之前,垃圾收集器调用了finalize(),dispose()必须由程序员明确调用。
参考:
1.实施最终确定并处置以清理未管理的资源。在这里可用
2. Sharma,Nitya。“回到基础知识 - 处置与最终确定。”C#角。在这里可用
图片提供:
1.’csharp logo’by andres15alvarez - 自己的工作,(CC BY-SA 4.0)通过下议院维基梅迪亚
发表评论