美文网首页
JDK体系和JVM

JDK体系和JVM

作者: battle_ | 来源:发表于2020-06-09 19:13 被阅读0次
    1. JDK包含开发工具和运行环境,JRE为运行环境

    2. JVM

    • 类装载系统

    • 运行时数据区
      堆:对象实例 线程共享

      1/3(8Eden => 1Survivor S0from- 1Survivor S1to年轻代) =>2/3老年代
      Eden 满了执行 minor gc(gc root可达性分析算法找到存在引用对象复制到Survivor(两个区域轮换存放)且对象分代年龄+1,垃圾对象执行GC删除),1当触发gc时分代年龄达到15时,会将对象移动到老年代,老年代2/3 FULLGC,FULLGC触发会执行STW(stop the world,让其他线程停止,资源去处理GC,防止收集过程标记清除等复杂场景出现),2当一批对象大小超过survivor区域50%时,直接放到老年代

      栈(线程):为方法提供内存空间,存放局部变量表(对象为内存地址),操作数栈(操作的执行与临时存储操作相关数据),动态链接,方法出口(方法执行完的上层方法线程位置记录)线程独享

      可查看java字节码文件观察存储流程,javap -c XXX.class > XX.txt

      本地方法栈:执行native方法所需分配的内存位置 线程独享
      方法区:存放常量,静态变量,类信息 1.8之后叫元空间,之前叫持久代 线程共享
      程序计数器:各线程执行到代码的位置(时间片切换,断点执行,由字节码执行引擎动态修改)

    • 字节码执行引擎

    1. 调优工具
      调优目的:减少GC次数,减少GC过程STW时间,STW会影响用户体验
      对象估算: 所有成员变量字节量和
      xms xmx
      xmn 年轻代大小
      jvisualvm
      jprofiler

    关系图

    相关文章

      网友评论

          本文标题:JDK体系和JVM

          本文链接:https://www.haomeiwen.com/subject/ubggzhtx.html