目录

一、Java代码执行流程:

二、JVM架构模型:

1.这两种架构之间的区别:

2.反编译指令:

在IDEA中查看字节码:

三、JVM的生命周期:

1.虚拟机的启动:

2.虚拟机的执行:

3.虚拟机退出:

四、JVM发展历程:

1.Sun Classic VM:

2.Exact VM:

3.HotSpot VM:

4.BEA JRockit:

5.IBM J9:

6.KVM CDC/CLDC Hotspot:

7.Azul VM:

8.Liquid VM:

9.Apache Harmony:

10.Microsoft JVM:

11.Taobao JVM:

12.Dalvik VM:

13.Greal VM:


一、Java代码执行流程:


二、JVM架构模型:

Java编译器输入的指令流基本上是一种基于栈的指令集架构,另外一种指令集架构则是基于寄存的指令集架构

1.这两种架构之间的区别:

  • 基于栈式架构的特点:

    • 设计和实现更简单,适用于资源受限的系统
    • 避开了寄存器的分配难题:使用零地址指令方式分配
    • 指令流中的指令大部分是零地址指令,其执行过程依赖于操作栈。指令集更小,编译器容易实现。
    • 不需要硬件支持,可移植性更好,更好实现跨平台
  • 基于寄存器架构的特点:
    • 典型的应用是x86的二进制指令集:比如传统的PC以及Android的Davlik虚拟机。
    • 指令集架构则完全依赖硬件,可移植性差
    • 性能优秀和执行更高效;
    • 花费更少的指令去完成一项操作。
    • 在大部分情况下,基于寄存器架构的指令集往往都以一地址指令、二地址指令和三地址指令为主,而基子栈式架构的指令集却是以零地址指令为主

2.反编译指令:

javap -v 字节码文件名

在IDEA中查看字节码:


三、JVM的生命周期:

1.虚拟机的启动:

Java虚拟机的启动是通过引导类加载器(Bootstrap class loader)创建一个初始类(Initial class)来完成的,这个类是由虚拟机的具体实现指定的。

2.虚拟机的执行:

  • 一个运行中的Java虚拟机也有一个清晰的任务:执行Java程序
  • 程序开始执行时,虚拟机才开始执行,程序结束就停止
  • 执行一个所谓的Java程序的时候,真真正正在执行的是一个叫做Java虚拟机的进程

3.虚拟机退出:

如果出现以下情况,虚拟机将退出:

  • 程序正常执行结束
  • 程序在执行过程中遇到了异常或错误而异常终止
  • 由于操作系统出现错误而导致Java虚拟机进程终止
  • 某线程调用Runtime类或System类的exit方法,或Runtime类的halt方法,并且Java安全管理器也允许这次exit或hait操作。
  • JNI(Java Native Interface)规范描述了用JNI Invocation API来加载或卸载Java虚拟机时,Java虚拟机的退出情况

四、JVM发展历程:

1.Sun Classic VM:

2.Exact VM:

3.HotSpot VM:

4.BEA JRockit:

5.IBM J9:

6.KVM CDC/CLDC Hotspot:

7.Azul VM:

8.Liquid VM:

9.Apache Harmony:

10.Microsoft JVM:

11.Taobao JVM:

12.Dalvik VM:

13.Greal VM:


【JVM】<Java虚拟机>JVM架构各种**虚拟机相关推荐

  1. JVM——Java虚拟机架构

    Java虚拟机(Java virtualmachine)实现了Java语言最重要的特征:即平台无关性. 平台无关性原理:编译后的 Java程序(.class文件)由 JVM执行.JVM屏蔽了与具体平台 ...

  2. Java虚拟机JVM的内部体系结构

    JVM(Java虚拟机)是一个抽象机器. 它是一个提供可以执行Java字节码的运行时环境的规范.JVM可用于许多硬件和软件平台(即JVM是平台相关的). 什么是JVM? JVM(Java虚拟机)是: ...

  3. 深入理解java虚拟机 - jvm高级特性与最佳实践(第三版)_JVM虚拟机面试指南:年薪30W以上高薪岗位需求的JVM,你必须要懂!...

    JVM的重要性 很多人对于为什么要学JVM这个问题,他们的答案都是:因为面试.无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎.不管是工作还是面试中,JVM都是必考题.如果不懂JVM的话,薪 ...

  4. 深入理解java虚拟机JVM(上)

    深入理解java虚拟机JVM(上) 链接:https://pan.baidu.com/s/1c6pZjLeMQqc9t-OXvUM66w 提取码:uwak 复制这段内容后打开百度网盘手机App,操作更 ...

  5. Java虚拟机JVM的内存管理

    Java虚拟机JVM的内存管理 关键词 一.JVM整体架构 根据 JVM 规范,JVM 内存共分为虚拟机栈.堆.方法区.程序计数器.本地方法栈五个部分. 名称 作用 特征 配置参数 异常 程序计数器 ...

  6. 实战java虚拟机 百度云_《实战JAVA虚拟机 JVM故障诊断与性能优化》pdf百度云下载...

    内容简介· · · · · · 随着越来越多的第三方语言(Groovy.Scala.JRuby等)在Java虚拟机上运行,Java也俨然成为了一个充满活力的生态圈.<实战Java虚拟机--JVM ...

  7. java虚拟机原理pdf_揭秘Java虚拟机 JVM设计原理与实现pdf

    揭秘Java虚拟机 JVM设计原理与实现 内容简介 <揭秘Java虚拟机:JVM设计原理与实现>从源码角度解读HotSpot的内部实现机制,本版本主要包含三大部分--JVM数据结构设计与实 ...

  8. Java中JVM虚拟机详解

    1. 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来 ...

  9. Java虚拟机(JVM)与Java内存模型(JMM)学习笔记

    Java虚拟机[JVM]与Java内存模型[JMM]学习笔记 Java虚拟机(JVM) 三种JVM JVM 位置 JVM的主要组成部分及其作用 类加载器 双亲委派机制 沙箱安全机制 Java本地接口( ...

最新文章

  1. 用GAN来做图像生成,这是最好的方法
  2. python教学视频下载-董付国老师Python精品教学,视频教程下载
  3. abb限位开关已打开drv1_施工升降机上有10个限位器,你都知道了吗?
  4. php的exportexcel,PHPExcel export网络或本地图片到excel
  5. 安卓App的启动过程、安卓布局分类及布局和页面的关系
  6. 什么是比特币?比特币的发展史,什么是挖矿?
  7. 【李宏毅2020 ML/DL】P52 Network Compression - Network Pruning
  8. android系统 rom制作,教你制作定制版安卓系统(androidrom).doc
  9. 面试题:谈谈你对Mysql数据库优化的见解
  10. 900款工作岗位竞聘PPT模板免费下载
  11. Oracle 索引详解(index)
  12. 使用 GO-CQHttp或mirai框架 搭建QQ的机器人
  13. 公众号里面套页面_怎么套用别人的公众号模板?公众号模板在哪找? | 微信公众号指南...
  14. Java反射--藤原豆腐店自用
  15. java知识精华总结
  16. 服务器端配置jupyter notebook以及本地打不开的解决办
  17. python桌面实验小软件,实现地图信息整理为电子表格
  18. 我究竟适不适合做数据分析师?
  19. Elasticsearch-Cat命令详解
  20. 手写选中框css,对勾css✔️

热门文章

  1. 西南科技大学数电FPGA第一次实验报告
  2. clean code(代码整洁之道)
  3. 今天看到一个不错的漫画网站(E文)
  4. 火热售卖中 纪念币开始发行
  5. alias,unalias命令
  6. ​今年36岁,北邮硕士毕业,待过字节,阿里,最近被裁员,只能去外包。。。...
  7. python 利用高德地图定位小区名字
  8. 京东丧失3C主场优势
  9. Python 3 之 Chrom 截获的Headers转成dict格式
  10. Python编程:从入门到实践-第七章:用户输入和while循环(语法)