内存管理

c#的内存管理

1、不要留下打开的资源!明确关闭所有连接和清理所有非托管资源。一个通用的规则在using块内使用非托管资源。

2、不要过度的使用引用。当我们的对象活着,那么所有相关的引用对象将不会被回收。当我们操作了引用类的一些属性后,我们需要明确的将引用变量设置为null。以便垃圾回收器回收这些对象。

3、使用终结器(finalizer)使工作更容易,但是是在必须的情况下。终结器(finalizer)需要花费垃圾回收器的昂贵的代价,所以必须在必要的时候使用它。一个更好的方案是使用IDisposible 接口来取代终结器(finalizer)。这样做会使垃圾回收器工作的更有效率。

4、将对象和它们的孩子保持在一起。这样使得垃圾回收器更容易去产生大块内存而不用去收集托管堆上的每一个零散的内存。因此当我们声明一个对象由多个其他对象组合成的时候,我们应该显示的将它们安排的紧密一些。

OC内存管理

谁创建谁释放。使用copy,new,alloc创建对象,引用计数器retain会加一,需要使用release或autorelease进行释放。

JAVA内存管理

JAVA里面有垃圾回收机制,不需要程序员考虑内存管理。

原文地址:https://www.cnblogs.com/layios/p/5229857.html