先抱怨几句话,csdn的博客真不怎么样,我决定搬到51cto.com上去,等什么时候有时间了搭个自己的wordpress的博客~
另外下面这些内容都是我自言自语的,很多描述不是很准确,所以万一哪位朋友看到了,表笑话哈
今天温习了一遍hotspot jvm的内存机制,现在凭着记忆再说一遍。
hotspot是sun公司开发的jvm机制,因为java程序中的两个事实:
(1)很多对象都在创建之后的短时间内使用,之后就不再使用了
(2)存在了很长时间的老对象很少引用新创建的对象
所以,将heap,也就是堆中的内存划分为young和old,也就是年轻代和老年代,
对于年轻代中的对象,每次gc时会有大量的对象被清理,而且因为堆的大小不大,gc非常迅速,
而老年代中的gc则需要较长的时间,代价较大
年轻代中分为eden ,存活1和存活2三个区域,eden中的对象gc时一定会被清除,两个存活区中,活动的存活区中足够老的对象会被复制到老年代,有引用但不够老的对象将复制到另一个存活区中,其他的也会被清除。
gc的收集器类型有大约3种,串行的,并行的和同步的
清除对象的算法有,1,从根对象开始扫描,标记并清除,会停止执行程序,所以实时性差,2,复制法,会占用一倍的内存,3,标记并移动,结合了两种算法的优点
参数的就不说了。
还看了一些hadoop的资料,晚上听友明兄讲了zookeeper的知识