jvm 系统学习

1. java 运行机制

  有java文件编译成class文件,然后通过链接加载进jvm。初始化后会生成内存空间。

2. 对象生命周期

     new-> 加载内存->gc过程

3. jvm 运行时数据区

  独占部分:虚拟机栈,本地方法区,程序计数器

  共享部分:方法区(类信息,常量池,等等), 堆。

4. jvm gc

  gc 原理:

  gc 算法:新生代(复制算法),标记清除算法。

5. 常用gc收集器 

  cms:  标记清除算法实现,且以获取最短回收停顿时间为主的收集器,希望系统停顿时间最短。其中标黄为耗时比较久的操作。

     有4个步骤:  初始标记(stop the world) ,会标记GC root直接关联的对象,很短

           并发标记  便利所有的对象。

           重新标记(stop the world) 在并发标记时,产生的新的垃圾对象

           并发清除 

     不足:cpu资源要求比较高,有浮动垃圾,且产生垃圾碎片(标记-清除算法通病)。

     

 

  g1:  推荐。多核cpu比较好。并行与并发,分代收集等特性

 

posted @ 2019-12-31 14:12  小小zkj  阅读(98)  评论(0)    收藏  举报