文档章节

关于对象的存在和销毁

lzw_me
 lzw_me
发布于 2014/04/30 10:29
字数 599
阅读 38
收藏 2

 

类的实例(即对象)是使用 New 关键字创建的。在使用新对象之前,通常必须对其执行初始化任务。  常见的初始化任务包括打开文件、连接到数据库以及读取注册表项的值。  Visual Basic 使用名为“构造函数”的过程(可控制初始化的特殊方法)控制新对象的初始化。  

           当对象离开范围之后,将由公共语言运行时 (CLR) 释放。Visual Basic 使用名为“析构函数”的过程控制系统资源的释放。  构造函数和析构函数共同支持创建可靠的和可预测的类库。  

         当系统确定对象不再需要时,CLR 会定期销毁这些对象。当系统资源短缺时,对象释放会快一些,否则就不那么频繁。  在对象失去范围和 CLR 释放对象这两个时间之间的延迟意味着您不能准确确定对象将在什么时候销毁,这与 Visual Basic 6.0 和早期版本中对象的情况不同。  在此类情况下,称对象具有“非确定生存期”。  在大多数情况下,非确定生存期并不会对您如何编写应用程序产生影响,只要您记住 Finalize 析构函数可能不会在对象失去范围时立即执行即可。  

             这两个垃圾回收系统之间的另一个差异涉及到 Nothing 的使用。 为利用 Visual Basic 6.0 和早期版本中的引用计数,程序员有时将 Nothing 赋给对象变量以释放这些变量所保存的引用。  如果变量保存的是对对象的最后一个引用,对象的资源将立即被释放。  在 Visual Basic 的更高版本中,尽管可能存在此过程仍然有价值的情况,但执行此赋值操作从不会导致被引用对象立即释放其资源。  若要立即释放资源,请使用对象的 Dispose 方法(如果可用)。  只有当变量生存期相对于垃圾回收器检测孤立对象所需时间较长时,才应当将变量设置为 Nothing。  


本文转载自:http://msdn.microsoft.com/zh-cn/library/hks5e2k6.aspx

lzw_me
粉丝 4
博文 149
码字总数 42741
作品 0
昌平
程序员
私信 提问
Unity中的Destroy和null 问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wwlcsdn000/article/details/81347025 Unity中的Destroy和null 问题 Unity中,我们经常需要销毁物体,Unity也...

那远远的云端
2018/08/01
0
0
JDBC代码阅读中出现的问题

上述的static是修饰的叫"代码块"是吧?为啥要用static修饰呢?是为了不重复创建只用static中已经存在的吗? 上边这段代码是封装的关闭资源,一直不太理解关闭资源的意思,是把资源对象销毁还是怎么...

HaleyZhang
2018/06/10
170
3
NSAutoReleasePool 讲解

好记性不如烂博客. 今天需要记录的是关于NSAutoReleasePool的理解.(大部分内容来自于iOS4.3 Library) Cocoa的内存管理主要依赖于Reference Counting, 而NSAutoReleasePool就是用来支持它的....

孙启超
2012/05/28
356
1
实战Hybird app:内存溢出与优化

主要的问题: heap过大,内存低性能差的机子上引起奔溃,直接退出 关于web app的优化,不仅仅只是js方面,包括HTML布局嵌套,CSS的属性使用,数据的读取,还有浏览器的重排与回流之类的这里就...

文艺小青年
2017/06/29
0
0
关于Android中Context的操作

在android中context可以作很多操作,其主要的功能是加载和访问资源。android有两种不同的context,一种是 application context,另外一种是activity context,通常我们在各种类和方法间传递的...

博为峰教研组
2016/12/28
2
0

没有更多内容

加载失败,请刷新页面

加载更多

经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
31分钟前
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
41分钟前
8
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
52分钟前
6
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
54分钟前
6
0
实战项目-学成在线(八)

在前后端分离架构中,服务层被拆分成了很多的微服务,微服务的信息如何管理?Spring Cloud中提供服务注册中心来管理微服务信息。 注册中心作用: 1、微服务数量众多,要进行远程调用就需要知...

lianbang_W
55分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部