Java虚拟机(一):JVM体系结构

简介: JVM体系结构

一、JVM概述

Java虚拟机有自己完善的硬件架构,如处理器、堆栈等,还具有相应的指令系统

Java虚拟机本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java语言的可移植性正是建立在Java虚拟机的基础上。任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。这就是“一次编译,多次运行”

Java虚拟机不仅是一种跨平台的软件,而且是一种新的网络计算平台。该平台包括许多相关的技术,如符合开放接口标准的各种API、优化技术等。Java技术使同一种应用可以运行在不同的平台上。Java平台可分为两部分,即Java虚拟机(Java Virtual Machine)和Java API类库

目前JVM已经支持多语言字节码文件,如Kotlin、Groovy、JRuby、Jython、Scala等

二、JVM在计算机所处的位置

JVM是运行在操作系统之上,没有直接和硬件进行交互

-

三、JVM的不同实现

  • SUN Classic
  • Exact VM:开始具备现代JVM特性
  • HotSpot VM:具备热点代码探测技术,目前在大规模使用的JVM
  • BEA JRockit:(BEA已被Oracle收购)专注于服务端应用,世界最快的JVM之一
  • IBM J9
  • Taobao JVM:目前阿里淘宝、天猫均使用Taobao JVM替换Oracle官方JVM
  • Graal VM: Oracle 2018年4月公开,口号 Run Programs Faster Anywhere.最可能替代HotSpot的产品

四、JVM体系结构

1.Java代码运行流程:Java程序 --> 字节码文件 --> 类装载子系统化身为反射类Class--> 运行时数据区-->执行引擎 --> 操作系统

2.方法区堆区是所有线程共享内存的区域而Java栈本地方法栈程序计数器是运行是线程私有的内存区域

五、JVM采用的架构

由于跨平台的特性,JVM采用基于栈的指令集架构,无需硬件支持,更好实现跨平台特性

与JVM采用架构相对的另一指令集架构:基于寄存器的指令集架构

下图为基于栈与寄存器指令集架构各自特点

-

六、JVM声明周期

1.启动

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

2.执行

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

3.结束

  • 程序正常执行结束
  • 程序异常或错误而异常终止
  • 操作系统错误导致终止
  • 某线程调用Runtime类或System类的exit方法,或Runtime类的halt方法,并且Java安全管理器也允许这次exit或halt操作
  • 除此之外,JNI规范描述了用JNI Invocation API来加载或卸载Java虚拟机时,Java虚拟机的退出情况
相关文章
|
14天前
|
Oracle Java 关系型数据库
java体系结构和jvm
java体系结构和jvm
|
25天前
|
缓存 Java C#
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍(一)
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍
67 0
|
5天前
|
缓存 监控 Java
深入理解Java虚拟机(JVM)性能调优
【4月更文挑战第18天】本文探讨了Java虚拟机(JVM)的性能调优,包括使用`jstat`、`jmap`等工具监控CPU、内存和GC活动,选择适合的垃圾回收器(如Serial、Parallel、CMS、G1),调整堆大小和新生代/老年代比例,以及代码优化和JIT编译策略。通过这些方法,开发者能有效提升应用性能并应对复杂性挑战。性能调优是持续过程,需伴随应用演进和环境变化进行监控与优化。
|
1月前
|
存储 缓存 安全
[Java基础]——JVM内存模型
[Java基础]——JVM内存模型
|
1月前
|
算法 Java UED
【JVM】分代收集算法:提升Java垃圾回收效率
【JVM】分代收集算法:提升Java垃圾回收效率
20 0
|
1月前
|
Java
【JVM】深入理解Java引用类型:强引用、软引用、弱引用和虚引用
【JVM】深入理解Java引用类型:强引用、软引用、弱引用和虚引用
94 0
|
1月前
|
存储 安全 Java
【JVM】Java堆 :深入理解内存中的对象世界
【JVM】Java堆 :深入理解内存中的对象世界
50 0
|
存储 缓存 Java
《深入理解Java虚拟机》读书笔记
《深入理解Java虚拟机》是整个Java图书领域公认的经典著作和超级畅销书,全书共分为五大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM的工作原理。本文就是读者对于本书阅读后的读书笔记,和大家一起分享。
3365 0
|
存储 运维 监控
《深入理解Java虚拟机》学习笔记
第2章 垃圾收集器与内存分配策略 1.Java虚拟机在执行java程序时会把它所管理的内存会分为若干个不同的数据区域, 这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是在以来用户线程的启动和结束而建立和销毁。
5021 0