内存管理总结
2009-09-22 14:02 cunhao 阅读(542) 评论(0) 编辑 收藏 举报简单的总结 或许对初学者有用 主要自己做个备份
一 创建
1 值类型的创建
在栈上分配内存,存储其数据成员。 如果是值类型, 直接存放在栈上;如果数据成员是引用类型,则在堆上存放该成员,栈上存放堆中该成员的地址。
2 引用类型创建( ObjectA a = new ObjectA () )
在栈上分配内存,保存变量a, 在堆上分配空间保存数据成员, 同时把堆的相应地址赋给栈上的变量; 不管成员是引用类型还是值类型都存放在堆上。
二 销毁
1 栈上的对象
直接销毁
2 堆上的对象
.NET垃圾回收机制: 如果对象被其他对象引用,该对象不会被销毁, 当不再被其他对象引用时,垃圾回收器会将其回收销毁。
如果被销毁的对象引用着其他对象,如果这些对象还被其他对象引用着,那么这些对象不会被回收,否则,这些对象也会被回收。