开始被问蠢了:
java gc 为什么新生代不用标记整理算法,为什么标记复制算法
我一想这不是送分题嘛,
回答:新生代要清除的对象多,标记整理清除对象产生大量碎片之后还要整理,标记复制将存活对象复制到s2,将s1整个清除掉,速度快
又问我为什么标记复制比标记整理块?
回答:标记整理每一个存活对象都要向一端移动,标记复制要将对象一个个复制到s2区,在一次整理整个s1区
面试官说这个对象移动和一次整理s1区应该消耗时间一样,你再想想为什么新生代要用标记复制。提示一下,软件都是空间和时间的妥协来达到最好的效果。
僵了一会。。回答:标记复制需要有一块内存不使用,需要空间代价,他应该比标记复制在新生代执行gc的快
那为什么快呢,再给你一分钟时间?
。。。扯了下gc root 引用什么的,
后面感觉到面算法崩了。。。。。面试官也没说答案
大佬能回答一下吗,我查到的明明这两个方法gc时间本来就不一样啊,标记复制就是一次清理s1速度快
算法 判断一个二叉树是否对称
全部评论
(9) 回帖