垃圾回收编程--ms.net文档阅读笔记

原创 2004年06月23日 15:10:00

?.NET Framework 的垃圾回收器隐式地执行所有必要的内存管理任务。但是,在您创建封装非托管资源的对象时,当您在应用程序中使用完这些非托管资源之后,您必须显式地释放它们。

NET Framework 提供 <?XML:NAMESPACE PREFIX = MSHelp NS = "http://msdn.microsoft.com/mshelp" />Object.Finalize 方法,它允许对象在垃圾回收器回收该对象使用的内存时适当清理其非托管资源。默认情况下,Finalize 方法不执行任何操作。如果您要让垃圾回收器在回收对象的内存之前对对象执行清理操作,您必须在类中重写 Finalize 方法。C# 和托管扩展提供析构函数作为编写终止代码的简化机制。析构函数自动生成 Finalize 方法和对基类的 Finalize 方法的调用.

垃圾回收器使用名为“终止队列”的内部结构跟踪具有 Finalize 方法的对象。每次您的应用程序创建具有 Finalize 方法的对象时,垃圾回收器都在终止队列中放置一个指向该对象的项。托管堆中 所有需要在垃圾回收器回收其内存之前调用它们的终止代码的对象 都在终止队列中含有项。

Finalize 方法回收对象使用的内存需要至少两次垃圾回收。当垃圾回收器执行回收时,它只回收没有终结器的不可访问对象的内存。这时,它不能回收具有终结器的不可访问对象。它改为将这些对象的项从终止队列中移除并将它们放置在标为准备终止的对象列表中。该列表中的项指向托管堆中准备被调用其终止代码的对象。垃圾回收器为此列表中的对象调用 Finalize 方法,然后,将这些项从列表中移除。后来的垃圾回收将确定终止的对象确实是垃圾,因为标为准备终止对象的列表中的项不再指向它们。在后来的垃圾回收中,实际上回收了对象的内存。

java垃圾回收机制通俗的解释

小伙伴一看原来是讲JAVA的,有人会说我不搞JAVA,这个于我何干?唉,这就是个急功近利的社会,大家要了解思想,思想高于一切懂吗?我每天基本游走在C++和JAVA之间,它们有什么差别呢,唯一的差别只表...
  • qq_29375941
  • qq_29375941
  • 2016年03月20日 18:07
  • 306

垃圾回收算法

实际上,自动内存管理就是持续跟踪应用程序中的存活对象,即有哪些对象被其他正在使用的对象所引用,没有被使用的对象会被垃圾回收器回收掉。在本文中, 存活对象和 正在使用的对象会交替使用,它们是一个意思。 ...
  • see__you__again
  • see__you__again
  • 2016年06月06日 12:19
  • 1677

垃圾回收机制如何优化程序

垃圾回收机制,如何优化程序 原文地址:http://blog.sina.com.cn/s/blog_a0af2b6d0101fldu.html 虽然程序员无法控制JVM的垃圾回收机制。...
  • baidu_35751704
  • baidu_35751704
  • 2017年06月24日 14:21
  • 428

理解Android中垃圾回收日志信息

如果你是一名Android开发者并且常常看程序日志的话,那么下面的这些信息对你来说可能一点都不陌生。 1 2 3 4 5 GC_CONCURRENT freed ...
  • Return_Code
  • Return_Code
  • 2014年11月17日 09:53
  • 797

全面了解JavaScirpt 的垃圾(garbage collection)回收机制

这篇文章主要介绍JavaScirpt 的垃圾(garbage collection)回收机制,需要的朋友可以参考下。 一、垃圾回收机制—GC Javascript具有自动垃圾回收机制(...
  • poptxz
  • poptxz
  • 2016年11月06日 16:19
  • 1338

JVM内存区域和垃圾回收

在JVM规范中,java虚拟机在在运行时用到的存储不同类型数据的区域统称为-Java运行时数据区 在java运行时数据区包括一些部分: 1、程序计数器 2、方法区 3、栈(虚拟机栈、本地方法栈...
  • cysdxy
  • cysdxy
  • 2016年08月26日 10:13
  • 803

深入理解Java垃圾回收机制

原文:http://www.linuxidc.com/Linux/2015-06/118829.htm 一、垃圾回收机制的意义   Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程...
  • hudashi
  • hudashi
  • 2016年07月28日 20:07
  • 11180

Linux内核---28.yaffs2的垃圾回收机制

Linux内核---28.yaffs2的垃圾回收机制
  • wangcong02345
  • wangcong02345
  • 2016年07月04日 19:28
  • 596

详解SSD之垃圾回收GC

当在操作系统(例如 Windows)中删除文件时,操作系统只是在其内部文件表中做标记表示该文件已删除。由于NAND 闪存设备不能覆盖现有数据,所以在固态硬盘SSD上,当前无效的数据仍然保留在硬盘上。 ...
  • zhuzongpeng
  • zhuzongpeng
  • 2017年07月18日 13:31
  • 612

c++没有垃圾回收机制的原因

我们知道Java有垃圾回收(Gabage Collector)机制,但c++没有这样的机制,这导致C++中对动态存储的管理成为程序员的噩梦,不是吗?c++程序员经常遇到的是内存泄露(memory le...
  • jx232515
  • jx232515
  • 2016年10月07日 15:31
  • 347
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:垃圾回收编程--ms.net文档阅读笔记
举报原因:
原因补充:

(最多只允许输入30个字)