有看过《C#与.net高级程序设计》这本书的朋友吗,帮忙理解“对象的生命周期”中的一小节!! 有看过《C#与.net高级程序设计》这本书的朋友吗,帮忙理解“对象的生命周期”中的一小节!!小节名为:对象的生命周期之"应用程序根的作用"怎么理解应用程序根(application root),书的讲的不清楚,也许是翻译的不好吧什么叫应用程序“可达”和“不可达” 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 分配对象使用new关键字,释放对象时只要将对象所有引用赋值为null,让程序不能够再访问到这个对象,我们称该对象为 "不可达的 "。GC将负责回收所有 "不可达 "对象的内存空间.对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象. 通过这种方式确定哪些对象是 "可达的 ",哪些对象是 "不可达的 "。当GC确定一些对象为 "不可达 "时,GC就有责任回收这些内存空间比如classTest test= new classTest();test=null;那在堆上分配的内存上的数据 就无法访问到了.就是不可达对象看到这里可达的LZ应该明白了吧 怎么理解应用程序根(application root)应用程序根目录? 那什么是“application root”,即应用程序根,上面讲什么应用程序根的作用:根是一个存储位置,保存着对堆上一个对象的引用,后面又举出了根可以属于下面任何一个类别:全局对象的引用当前使用的静态对象,静态字段的引用一个给定的方法局部对象的引用传递给一个方法的对象参数的引用等待被终结(finalize)的对象的引用任何引用局部对象的CPU寄存器这些有什么类别有什么共同特征吗?为什么列举这些,而不是所有对象的引用?? http://msdn.microsoft.com/zh-cn/library/ms178473(VS.80).aspx 应用程序根就是程序根目录,web默认的wwwroot应用程序域(AppDomain)是很多应用程序域都可以运行在同一个.NET的进程中,可以降低系统消耗,同时不同的域之间互相隔离,在安全性方面有保障。 应用程序根(application root)不是程序根目录啊,书上说是一个存储位置,保存着对堆上一个对象的引用...但是我还是不太理解这句话和下面的举例:当前使用的静态对象,静态字段的引用 一个给定的方法局部对象的引用 传递给一个方法的对象参数的引用 等待被终结(finalize)的对象的引用 任何引用局部对象的CPU寄存器 刚才又重点看了一下,理解如下:应用程序根其实就是对象引用。如果堆中分配的内存对于还被引用,就称为:该对象由应用程序根可达。如楼上classTest test= new classTest(); 如果 test = null 那么称:该对象由应用程序根不可达。别扭死了,这名字起的。应用程序域是Net在Win32进程上进一步抽象的一个层次,对于net程序来说:windows中的一个进程中可以由多个应用程序域,每个应该程序域都可独立加载及卸载。 不用控件如何完成同样功能 有关Textbox控件事件的一些问题? 流图片类型 求高手帮忙实现这样的水印效果 关于Sizeof问题 数据结构<help!!> C#中怎么据类名字符串生成类的实例? 可以用c#来写硬件的驱动吗? com+的事务是如何提交的? 一个特殊的需求? 感谢net5i,请net5i进来接分... dispose问题
通过这种方式确定哪些对象是 "可达的 ",哪些对象是 "不可达的 "。当GC确定一些对象为 "不可达 "时,GC就有责任回收这些内存空间
比如
classTest test= new classTest();
test=null;
那在堆上分配的内存上的数据 就无法访问到了.就是不可达对象
看到这里可达的LZ应该明白了吧
应用程序根目录?
那什么是“application root”,即应用程序根,上面讲什么应用程序根的作用:根是一个存储位置,保存着对堆上一个对象的引用,后面又举出了根可以属于下面任何一个类别:
全局对象的引用
当前使用的静态对象,静态字段的引用
一个给定的方法局部对象的引用
传递给一个方法的对象参数的引用
等待被终结(finalize)的对象的引用
任何引用局部对象的CPU寄存器
这些有什么类别有什么共同特征吗?为什么列举这些,而不是所有对象的引用??
应用程序域(AppDomain)是很多应用程序域都可以运行在同一个.NET的进程中,可以降低系统消耗,同时不同的域之间互相隔离,在安全性方面有保障。
应用程序根(application root)不是程序根目录啊,书上说是一个存储位置,保存着对堆上一个对象的引用...
但是我还是不太理解这句话和下面的举例:
当前使用的静态对象,静态字段的引用
一个给定的方法局部对象的引用
传递给一个方法的对象参数的引用
等待被终结(finalize)的对象的引用
任何引用局部对象的CPU寄存器
如楼上classTest test= new classTest(); 如果 test = null 那么称:该对象由应用程序根不可达。别扭死了,这名字起的。
应用程序域是Net在Win32进程上进一步抽象的一个层次,
对于net程序来说:windows中的一个进程中可以由多个应用程序域,每个应该程序域都可独立加载及卸载。