2.JVM内部模型及优化

2.JVM内部模型及优化

1、JDK体系结构与跨平台特性介绍
JDK体系结构

在这里插入图片描述

JDK图的最上面是java的命令和工具。

下面是JRE就是java的运行时环境-支撑java运行的一些核心类库;JRE有一块重要的东西就是java虚拟机。

java跨平台特性

在这里插入图片描述

如上图可以,不论java代码部署在windows还是linux操作系统上,是由不同系统的JDK里面的jvm帮助java转换跨平台需要的指令字节码。

2、JVM内存模型深度剖析
JVM结构组成

在这里插入图片描述

栈:线程运行时JVM会分配一块内存存储线程需要的局部变量区域。

栈帧:方法运行时存放方法对应变量的一块栈帧内存区域。

一个栈区域有多快栈帧内存组成,栈帧生成顺序是从下到上的。

方法区:包含常量+静态变量+类信息

jvm为什么会设计一个程序计数器?因为多线程,假设一个线程正在执行一个代码,这时来了一个优先级更高的线程抢占了资源,另一个线程要刮起等它执行完,挂起的线程恢复时可以利用计数器恢复到程序执行的位置。

GC ROOTs根节点:线程的本地变量、静态变量、本地方法的变量等等;

堆:老年代和年轻代比例是2:1,当堆的Eden区对象存储满了之后字节码执行器会调用minor gc,经历过一次gc,分代就会加一,minor gc每执行一次没被回收的变量的分代都会加一,当加到15(最大值)时,就会被移到老年代。

3、从jvisualvm来研究下对象内存流流转模型

wind+R打开运行,输入jvisualvm,打开JDK自带的JVM分析工具,可以看到本地所有打开的jvm进程。默认情况下是没有visual GC插件的,需要在Java VisualVM 工具上安装。

在这里插入图片描述

引用变量从Eden区到S0区再到S1区,最终到old区。

4、讲透GC Root与STW机制

​ STW:Stop The World ,就是停止掉用户线程,用在在使用系统时感觉系统卡顿或者有延迟。

​ JVM:调优就是减少full gc的时间和次数。

​ 为什么设计STW机制?GC 执行时非垃圾变量在寻找相关引用,如果没有STW机制,当使用这些变量的线程执行结束,变量之间的引用断开,之前的非垃圾变量就成了垃圾变量,这是GC还没结束,相当于这次GC无效,所以在执行GC时,会执行STW。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
课程简介: 目前,Java是最为流行的编程语言之一,它的基础平台就是JVM。除了Java,如JRuby、Scala、Clojure等语言也运行在JVM平台。熟悉和掌握JVM平台有着重要的实用价值和意义。 在本课程中个,将详细介绍JVM的基本原理、组成以及工作方式,并配合实际案例,介绍相关的调优技巧。 课程大纲: 第一课 初识JVM JVM分类 Java语言规范 JVM规范 介绍JVM的基本知识和发展历史,并介绍了Java语言规范和JVM规范。 第二课 JVM运行机制简介 堆、栈、方法区等 JVM启动流程 内存模型和volatile实例 解释和编译运行的概念 介绍JVM内部结构、启动流程以及内存模型。并介绍JVM字节码的执行方式。 第三课 常用JVM参数 堆的分配参数 栈分配及实例讲解 server与client模式 调试跟踪参数 介绍常用的JVM参数,包括内存分配、堆栈分配、虚拟机运行模式以及调试跟踪参数。 第四课 GC的算法和种类 引用计数 标记清除 复制算法 标记压缩 可触及性 本章是理论性较强的一章,主要介绍GC的基本算法和思想,本章作为下一章节的前序课程。 第五课 GC控制参数 Serial ParNew等GC参数 GC的参数搭配实例分析 介绍GC的设置参数,并分析相关的案列。 第六课 类装载 class装载流程 ClassLoader模式 ClassLoader的使用实例分析 热替换例子 详细介绍ClassLoader的原理和应用。分析2个案例,说明ClassLoader的使用。 第七课 性能监控工具 线程死锁分析 OOM分析 介绍常用的JVM诊断和分析工具,并以死锁和OOM为例,展示这些工具的使用。 第八课 分析Java堆 MAT的使用案例 Jvisualvm介绍使用 介绍了Java堆的分析方法,以一个实例为基础,展示对堆的分析过程。 第九课 锁 baise锁 轻量级锁 自旋锁 介绍JVM中对多线程锁的实现。 第十课 class文件结构 ASM库介绍 介绍JVM规范中的最重要的内容——Class文件结构,同时介绍ASM库的使用以及对class文件的修改。 第十一课 字节码执行 案例以及javap JIT及相关参数 介绍JVM的字节码以及反汇编方法,同时介绍JIT相关的参数和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苹水相峰

你的打赏是对我最大的肯定

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值