GC是什么,描述一下GC的基本原理
垃圾回收器,内存处理时,不当的操作会使程序不稳定或者崩溃,当程序创建对象时,GC就开始监视这个对象的大小内存使用情况等,GC通常采用有向图记录和管理堆中的对象,判断哪些对象不可达,GC就回收这个内存空间。
也可以使用Sysytem.gc()手动回收。
Java中会存在内存泄漏吗?
存在内存泄漏
GC会自动释放那些不需要的对象,以避免大部分的内存泄漏,但是仍然会有。主要有:不再需要的对象引用,未释放的系统资源。
不要的对象引用:通常一个对象被其他对象引用,在线程退出之前,对象不会被收集。
未释放的系统资源:有些是实例以外的堆内存。
垃圾回收的优点和原理
垃圾回收使编写程序的时候不需要考虑内存管理,可以防止内存泄漏,有提高内存管理。垃圾回收器通常作为一个单独运行的线程,在监测到有些对象没有被使用时,会销毁这些对象。比如一个对象被覆为null,或是这个对象超出了作用范围。
有哪些垃圾回收算法
引用计数法:只要有对象引用了A,则计数器++,如果对象计数器为0,则进行销毁。
标记清除法:在标记阶段,首先通过根节点开始标记所有可达的对象,未被标记的就是没有被引用的。在清除阶段,清除所有没有被标记的对象。
复制算法:在正在使用的对象复制到未使用的内存块中,清除掉正在使用的内存块中的所有对象,两个内存块交换。完成了销毁没使用的对象。
Java:Garbage Collection
最新推荐文章于 2024-03-14 12:59:38 发布