从零打造知识体系-IT-Java高级-01JVM篇-初始JVM

简介:术道并行,从零打造IT知识体系,图文视频同步更新。
本文学习章节Java高级–01JVM篇–初始JVM
本文学习内容:简单介绍下JVM

思维导图
在这里插入图片描述

1 JVM的位置

JVM是运行在操作系统上,不同的系统安装与之对应的JVM。
在这里插入图片描述

2 常见JVM

主要了解目前最常见的JVM:

  • HotSpot VM :HotSpot指热点代码探测技术
  • Taobao JVM: 目前已经在淘宝、天猫上线,替换了Oracle官方JVM;
  • Graal VM: Oracle 2018年4月公开,口号 Run Programs Faster Anywhere.最可能替代HotSpot的产品

3 架构图

在这里插入图片描述

可以说,学习JVM就是掌握这张图,能掌握到这张图,便掌握了JVM。

类加载子系统:加载字节码文件到运行数据区的方法区
执行引擎:执行字节码文件中的指令
本地方法接口:java调用其他语言的接口,与本地资源交互
运行时数据区:java内存(方法区:存储类元信息、方法元信息、常量池等;堆内存;java虚拟机栈;本地方法栈;程序计数器等)

4 指令集

由于跨平台的设计,java的指令都是根据栈来设计的,不同平台CPU架构不同,所以不能设计为基于寄存器的

栈:跨平台性、指令集小、指令多;执行性比寄存器差
寄存器:指令少

5 JVM的生命周期

启动

  • 通过引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由虚拟机的具体实现指定的

执行

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

退出

  • 程序正常执行结束
  • 程序异常或错误而异常终止
  • 操作系统错误导致终止
  • 某线程调用Runtime类或System类的exit方法,或Runtime类的halt方法,并且java安全管理器也允许这次exit或halt操作
  • 除此之外,JNI规范描述了用JNI Invocation API来加载或卸载Java虚拟机时,Java虚拟机的退出情况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值