JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

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

wys521 2024-12-02 18:21:48 精选教程 21 ℃ 0 评论

简介:术道并行,从零打造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虚拟机的退出情况。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表