千锋教育-做有情怀、有良心、有品质的职业教育机构

当前位置:首页  >  IT面试题  >  大数据面试题  >  正文

垃圾回收机制(算法原理)

来源:千锋教育
发布时间:2022-09-26 11:43:34
分享

  引用计数法:对象每被引用一次就+1,为0时回收,速度很快但是无法识别循环引用

  标记清除法:遍历所有对象,标记没被引用的,然后统一清除。

  缺点是效率低、清理后内存不连续。

垃圾回收机制

  复制清除法:将内存分为两块,其中一块写满后,遍历对象标记有用的对象复制到另一块,然后把这一块清理,这样复制的内容很少而且内存始终连续,缺点是始终需要有一块内存空出来用于复制。

  标记整理法:遍历出有用的对象,将这些对象全都向一端移动,然后清理其它空间,一样能腾出连续的内存,但是移动对象的成本比复制大得多。

  GC采用分代收集法:年轻代采用复制清除法,每当eden满时,就遍历出eden和幸存者1区的有用对象复制到幸存者2区,然后清空重新写起。

  因此无论何时一定有一个幸存者区是空的。

  老年代由于有用的对象很多所以复制成本高,采用标记整理法减少复制。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

相关推荐

  • 请列举几个常用的Linux命令 man :帮助命令 sudo : 获取root权限 jps : 查看java进程 ps -ef : 查看进程 ps -aux : 查看进程 netstat -nltcp : 监听端口 free : 内存查看 top :动态 查看服务器资源信息
  • 单利模式是什么,线程安全吗? 也就是说通过单例我们可以实现数据的全局访问,还可以再全局实现功能的调用.单例分成懒汉式和饿汉式,对于懒汉式会有线程安全问题,需要进行同步处理,对于饿汉式不会有线程安全问题,不需要同步.
  • nio和bio的区别,为啥nio好 同步阻塞IO(JAVA BIO/Blocking IO ): 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销.
  • threadlocal原理 因为在上面的代码分析过程中,我们发现如果没有先set的话,即在map中查找不到对应的存储,则会通过调用setInitialValue方法返回i,而在setInitialValue方法中,有一个语句是T value = initialValue(), 而默认情况下,init...
  • arrayList和LinkedList的区别 Linkedlist基于链表的动态数组,数据添加删除效率高,只需要改变指针指向即可,但是访问数据的平均效率低,需要对链表进行遍历。对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
  • 垃圾回收机制(算法原理) 复制清除法:将内存分为两块,其中一块写满后,遍历对象标记有用的对象复制到另一块,然后把这一块清理,这样复制的内容很少而且内存始终连续,缺点是始终需要有一块内存空出来用于复制。