Jvm 的基础
解码:
内存分配:
GC:
双亲委派机制:
public Launcher() { // 首先加载 ExtClassLoader ClassLoader extcl; try { extcl = ExtClassLoader.getExtClassLoader(); } catch (IOException e) { throw new InternalError( "Could not create extension class loader", e); } // 首先加载 AppClassLoader try { loader = AppClassLoader.getAppClassLoader(extcl); } catch (IOException e) { throw new InternalError( "Could not create application class loader", e); } }
分代收集:理论
强分代:对象是朝生夕灭的。
弱分代:熬过越多次垃圾收集的过程的对象就越难以消亡。
所以他会将容易回收的对象放到一堆里,不容易回收的放到一堆里,从而在回收的时候在容易回收的对象中可以重点关注一下,而不容易的回收的对象就少关注一些,这样就能以低代价进行回收。
Java的虚拟机垃圾回收的实现里出现了,年轻代,老年代的概念。
所以新生代里放的都是些容易回收的对象,在新生代中回收不掉的放到老年代里面。
因为老年代里的对象一直回收不掉,他还会引用新生代的里面的对象,导致新生代里的对象也回收不掉,就跨代引用了,跨代引用,他就会遍历一次老年代里的对象,这增加了负担。
所以为了减少去扫描老年代,我就弄一个记忆集合,他把老年代分成小块结构,标记一下那一块的老年代里有跨代,这样就少遍历老年代里的对象。
这对象也跟着就进老年堆了。