java
金nono
这个作者很懒,什么都没留下…
展开
-
JVM垃圾回收算法-简单总结
一、标记-清除算法1、标记标记所有需要回收的对象第一次标记: 在经过可达性分析算法后,某个对象没有和GC Root相关引用链的时候,将会把这个对象加入到一个队列中。第二次标记: 对队列中的对象进行第二次标记,如果对象和GC Root有重新建立应用链的时候就把该对象移除队列不进行回收。2、清除优点: 最基础的可达性算法,后续的收集算法都是基于这种思想实现缺点: 标记和清除的效率不高,会产生大量的内存碎片,导致创建大对象的时候找不到连续的内存空间。二、复制算法将内存按容量分成大小相同的两块,原创 2020-12-15 16:03:49 · 130 阅读 · 0 评论 -
JVM垃圾收集器-简单总结
新生代收生器Serial、ParNew、Parallel、Scavenge老年代收集器CMS、Serial Old、Parallel Old整堆收集器G1Serial收集器Serial收集器是最基本的,发展历史最悠久的收集器。特点:单线程 、简单高效(垃圾回收时会暂停其他所有工作)应用场景: Client模式下的虚拟机ParNew收集器ParNew收集器其实就是Serial收集器的多线程版本。特点:多线桯,默认开启的线程数和 CPU的数量相同(也会出现停顿)。应用场景: Serve原创 2020-12-15 15:43:10 · 139 阅读 · 0 评论 -
JVM运行时数据区-简单总结
线程共享:方法区、 堆线程私有:虚拟机栈、 本地方法栈、 程序计数器作用方法区存储被jvm加载的类信息、 常量、 静态变量、 即时编译器编译后的代码等数据。堆几乎所有的对象都在这里分配。虚拟机栈存放指针, 和基本类型数据(boolean、byte、 char、 short、 int、 float、 long、 double) 。本地方法栈和虚拟机栈类似, 区别就在于它为native方法服务。程序计数器记入了当前线程执行的位置。...原创 2020-12-15 11:17:14 · 109 阅读 · 0 评论