JVM
JVM相关内容,基本都是理论
文·若
架构师们好,我是练习两年半的java实习生,喜欢唱跳rap篮球
展开
-
JVM内存调优参数
-XmsJVM启动时申请的初始Heap值,默认为操作系统物理内存的1/64但小于1G。默认当空余堆内存大于70%时,JVM会减小heap的大小到-Xms指定的大小,可通过-XX:MaxHeapFreeRation=来指定这个比列。Server端JVM最好将-Xms和-Xmx设为相同值,避免每次垃圾回收完成后JVM重新分配内存;开发测试机JVM可以保留默认值。-XmxJVM可申请的最大H...原创 2019-11-20 19:19:33 · 1133 阅读 · 0 评论 -
新生代与老年代
Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。其中新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。堆的内...原创 2019-11-17 21:17:49 · 842 阅读 · 1 评论 -
垃圾回收算法
标记清除算法概念该算法有两个阶段。1. 标记阶段:找到所有可访问的对象,做个标记。2. 清除阶段:遍历堆,把未被标记的对象回收缺点:会产生碎片,不够连贯应用场景该算法一般应用于老年代,因为老年代的对象生命周期比较长。优缺点标记清除算法的优点和缺点1. 优点- 是可以解决循环引用的问题- 必要时才回收(内存不足时)2. 缺点:- 回收时,应用需...原创 2019-11-15 19:42:32 · 153 阅读 · 0 评论 -
Java内存结构
据 JVM 规范,JVM 内存结构共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。这里的java内存结构与前面所述的Java内存模型是两个概念,不可以混淆。堆java堆是java虚拟机所管理的内存中最大的一块,是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配(从这...原创 2019-11-08 21:26:14 · 201 阅读 · 0 评论