- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Net面向对象程序设计–14–使用垃圾回收和资源管理–2010–2011–2
C# 无需太多的内存管理。这是因为 .NET Framework 垃圾回收器会隐式地管理对象的内存分配和释放。 但是,当应用程序封装窗口、文件和网络连接这类非托管资源时,应当使用析构函数释放这些资源。当对象符合析构时,垃圾回收器将运行对象的?Finalize?方法。 .NET面向对象程序设计 第14章 使用垃圾回收和资源管理 本章简介 使用GC 编写代码,用析构器终结一个对象时运行这些代码 编写try/finally语句 编写using语句 14.1 对象的生存期 对象的创建示例: Square mySquare=new Square(); 从开发人员的角度看,new是一个原子级的操作 在最底层,对象的创建实际分两步走: 首先,new操作必须从heap中分配一些原始内存,在创建对象阶段,你无法进行任何干涉 然后,new操作必须将那些原始内存转换成一个对象,它必须初始化对象,在构造器的帮助下,可以对这一阶段进行控制 创建对象后,可以使用.操作符访问它的成员 可以让其他引用变量引用同一个对象 销毁对象也分两步走 首先,runtime必须执行一些清理工作,在一个析构器destructor的帮助下,你可以对这一阶段进行控制 然后,runtime必须将之前被对象占有的内存归还给堆,对象的内存必须回收,同样,你对这一阶段仍然没有任何控制权 销毁一个对象,并将内存归还给堆的过程称为垃圾回收(garbage collection) * 示例: 01: using System; 02: 03: class Account 04: { 05: 06: } 07: 08: class Bank 09: { 10: private Account bankAccount; 11: 12: public void SetAccount (Account newAccount) 13: { 14: bankAccount = newAccount; 15: } 16: } 17: 18: class Tester 19: { 20: public static void Main() 21: { 22: Bank bank1; 24: Account account1; 25: Account account2; 27: account1 = new Account(); 29: account1 = null; 31: account1 = new Account(); 32: account2 = new Account(); 34: account1 = account2; 36: bank1 = new Bank(); 37: bank1.SetAccount(new Account()); 39: bank1 = null; 41: DoingAccountStuff(); 42: } 44: public static void DoingAccountStuff() 45: { 46: Account localAccount; 47: localAccount = new Account(); 48: } 49: } * 1、将null引用赋值给对象的所有引用 * 2、将一个表示对对象A的唯一引用的应用变量赋值给另一个不同的引用对象时,对象A被废弃 * 3、当对象A包含对象B的唯一引用时,若废弃对象A时,对象A和对象B都被废弃 4、当一个包含对某对象的唯一引用的本地变量越过作用域时,此对象就会被废除 14.1.1 编写析构器 使用析构器,可以执行对象被垃圾回收时需要执行的任何清理工作 析构器也是一个特殊的方法,只是runtime会在一个对象的最后一个引用消失后调用它 public static int InstanceCount() { return this.instanceCount; } ... private static int instanceCount = 0; } class Tally { public Tally() { this.instanceCount++; } ~Tally() { th
您可能关注的文档
- MBA运营管理–期末论文2007.pptx
- MAPSEND–LITE使用说明.ppt
- MBA–硕士论文答辩.ppt
- MATLAB软件求线性规划数学模型–海龟种群问题答辩.ppt
- MHK介绍(内蒙古考务)–复制.ppt
- Minitab的教程案列.ppt
- MikroTikRouterOS〔软路由服务器〕.ppt
- MIS03第3章管理信息系统的战略规划和开发方法.ppt
- Mis03–管理信息系统规划2010.ppt
- MIS05第5章管理信息系统的系统设计.ppt
- 剧本杀行业报告:内容创作规范与剧本市场拓展策略.docx
- 剧本杀行业区域市场区域文化特色与市场潜力分析报告.docx
- 剧本杀行业区域市场拓展实战案例研究.docx
- 剧本杀行业区域市场拓展路径与模式探索报告.docx
- 剧本杀行业区域市场竞争态势与品牌差异化策略研究报告.docx
- 剧本杀行业2025年西北区域市场市场细分领域竞争态势与品牌竞争策略分析研究报告.docx
- 剧本杀行业2025年西北市场拓展前景预测报告.docx
- 剧本杀行业2025年长沙市场发展潜力分析报告.docx
- 剧本杀行业2025年长三角市场竞争策略与布局分析.docx
- 医疗行业数据合规:2025年数据安全法实施后的合规监管挑战与应对.docx
最近下载
- 螺杆空气压缩机排气含油量高原因分析和解决措施.pptx VIP
- GBT51121-2015 风力发电工程施工与验收规范.doc VIP
- 螺杆压缩机排气温度高原因分析.doc VIP
- 部编版(2024)道德与法治一年级下册道德与法治第二单元《我们一起长大》全单元教学课件.pptx
- 合成氨压缩机温度波动原因分析.docx VIP
- 2024年03月云南省特种设备安全检测研究院人员招考聘用编制外工作人员9人笔试历年高频考点(难、易错点荟萃)附带答案详解.docx VIP
- 学堂在线大国航母与舰载机2025秋答案.docx
- 离心式压缩机轴瓦温度波动原因探析及解决措施.pdf VIP
- TCBDA55-2021住宅室内装饰装修工程质量验收标准.pdf VIP
- T/CSPSTC 41-2019钢结构建筑施工测量及监测技术规范.pdf
文档评论(0)