VM类加载机制分为五个部分:加载,验证,准备,解析,初始化
类加载
双亲委派机制:
如图。报如下错
JVM内存空间包含:方法区、java堆、java栈、本地方法栈。
方法区: static, 常量final, 类信息
栈:
栈+堆+方法区交互关系
堆里的分区
年轻代GC算法是:
复制算法: 幸存区交换,把两个幸存区的幸存对象复制到一个幸存区中,另一个幸存区里就是空了。就变成to
也就是一次GC完后,Eden区和to区都空了,对象存活在from区,下次GC时。Eden如果有存活的对象,会进入上次空的to区。from区未清理掉的对象也会到to区。此时,上次的from区变成to区。to变成from区
好处: 没有碎片
坏处: 浪费空间
标记压缩清除算法
优点:不浪费空间
缺点:两次扫描,多了成本
JVM调优工具: Jprofiler
JVM调优命令: