当前位置: 首页 > news >正文

系列一、JVM概述

一、概述

1.1、Java发展中的重大事件

1.2、虚拟机 vs Java虚拟机

1.2.1、虚拟机

1.2.2、Java虚拟机

1.2.3、Java虚拟机的作用

        Java虚拟机是二进制字节码的运行环境,负责装载字节码到其内部,解释/编译为对应平台上的机器指令指令。每一条Java指令,Java虚拟机规范中都有详细的定义,如怎么取操作数,怎么处理操作数,处理结果放在哪里。

1.2.4、特点

一次编译,到处运行;

自动内存管理;

自动垃圾回收功能;

1.3、JVM的位置

JVM是运行在操作系统之上的,它与硬件没有直接的交互。

1.4、JVM的架构图(概览图)

HotSpot JVM是目前市面上高性能虚拟机的代表之一;

它采用解释器与即时编译器并存的架构;

在今天,Java程序的运行性能早已脱胎换骨,已经达到了可以和C/C++程序一较高下的地步;

1.5、JVM的架构图(详细图)

1.6、JVM的生命周期

1.6.1、启动

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

1.6.2、运行

(1)一个运行中的Java虚拟机有着一个清晰的任务,即:执行Java程序;

(2)程序开始执行时它才执行,程序结束时它就停止;

(3)执行一个所谓Java程序的时候,真真正正在执行的是一个叫做Java虚拟机的进程;

1.6.3、退出

当出现以下情况时,虚拟机将会退出:

(1)程序正常执行结束;

(2)程序在运行过程中遇到了异常或者错误而异常终止;

(3)由于操作系统出现错误而导致Java虚拟机进程终止;

(4)线程调用Runtime类或者System类的exit()方法,或者调用Runtime类的halt()方法,并且Java安全管理器也允许这次exit或者halt操作;

1.7、各种JVM

1.7.1、HotSpot VM

1.7.2、Classic VM

1.7.3、Exact VM 

1.7.4、JRockit(BEA)

1.7.5、J9(IBM)

http://www.lryc.cn/news/235978.html

相关文章:

  • milvus数据管理-压缩数据
  • SpringBoot项目连接linux服务器数据库两种解决方法(linux直接开放端口访问本机通过SSH协议访问,以mysql为例)
  • 【Rust】快速教程——闭包与生命周期
  • redis高级案列case
  • Vue3+Vite实现工程化,attribute属性渲染v-bind指令
  • 下一代搜索引擎会什么?
  • WPF中如何在MVVM模式下关闭窗口
  • 【数据结构&C++】二叉平衡搜索树-AVL树(25)
  • Python算法——树的最大深度和最小深度
  • 46.全排列-py
  • 系列三、GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈
  • WPF中的虚拟化是什么
  • 免费稳定几乎无门槛,我的ChartGPT助手免费分享给你
  • 奇瑞金融:汽车金融行业架构设计
  • milvus数据库分区管理
  • pytorch.nn.Conv1d详解
  • 大数据HCIE成神之路之数学(2)——线性代数
  • 音视频学习(十八)——使用ffmepg实现视音频解码
  • nginx的GeoIP模块
  • mac控制台命令小技巧
  • Postman:API测试之Postman使用完全指南
  • Flume学习笔记(3)—— Flume 自定义组件
  • go的字符切片和字符串互转
  • 所见即所得的动画效果:Animate.css
  • ERR:Navicat连接Sql Server报错
  • python算法例10 整数转换为罗马数字
  • springboot引入第三方jar包放到项目目录中,添加web.xml
  • 大数据研发工程师课前环境搭建
  • Qt图形视图框架:QGraphicsItem详解
  • defer和async