东营网站排名长尾关键词
一、自动垃圾回收
1.1 C/C++的内存管理
- 在C/C++这类没有自动垃圾回收机制的语言中,一个对象如果不再使用,需要手动释放,否则就会出现内存泄漏。我们称这种释放对象的过程为垃圾回收,而需要程序员编写代码进行回收的方式为手动回收。
- 内存泄漏指的是不再使用的对象在系统中未被回收,泄漏的积累可能会导致内存溢出。
1.2 Java的内存管理
Java中为了简化对象的释放,引入了自动的垃圾回收(Garbage Collection简称GC)机制。通过垃圾回收器来对不再使用的对象完成自动的回收,垃圾回收器主要负责对堆上的内存进行回收。其他很多现代语言比如C#、Python、Go都拥有自己的垃圾回收器。
P5
1.3 垃圾回收的对比
1.3.1 自动垃圾回收
自动根据对象是否使用由虚拟机来回收对象
优点:降低程序员实现难度、降低对象回收bug的可能性
缺点:程序员无法控制内存回收的及时性
1.3.2 手动垃圾回收
由程序员编程实现对象的删除
优点:回收及时性高,由程序员把控回收的时机 <