Java虚拟机(一)结构原理与运行时数据区域

本文介绍了Java虚拟机的结构原理,包括Java虚拟机的家族、执行流程。详细讲解了运行时数据区域,如程序计数器、Java虚拟机栈、本地方法栈、Java堆和方法区,以及各区域的作用和异常情况。通过对Java虚拟机的理解,有助于深入学习Java内存管理和性能优化。
摘要由CSDN通过智能技术生成

前言

本来计划要写Android内存优化的,觉得有必要在此之前介绍一下Java虚拟机的相关知识,Java虚拟机也并不是三言两语能够介绍完的,因此开了Java虚拟机系列,这一篇文章我们来学习Java虚拟机的结构原理与运行时数据区域。

1.Java虚拟机概述

Oracle官方定义的Java技术体系主要包括以下几个部分:

  • Java程序设计语言
  • 各种平台的Java虚拟机
  • Class文件格式
  • Java API类库
  • 第三方Java类库

可以把Java程序设计语言、Java虚拟机和Java API类库这三部分统称为JDK(Java Development Kit),它是Java程序开发的最小环境。另外,Java API中的Java SE API子集和Java虚拟机这两部分统称为JRE(Java Runtime Environment),它是Java程序运行的标准环境。
从上面可以看出Java虚拟机及其重要,它是整个Java平台的基石,是Java语言编译代码的运行平台。你可以把Java虚拟机看做一个抽象的计算机,它有各种指令集和各种运行时数据区域。

1.1 Java虚拟机家族

很多同学可能认为Java虚拟机,就是一个虚拟机而已,它还有家族?或者认为Java虚拟机指的就是Oracle的HotSpot虚拟机。这里来简单介绍Java虚拟机家族,自从1996年Sun公司发布的JDK1.0中包含的Sun Classic VM到今天,出现和消亡了很多种虚拟机,我们这里只简单介绍目前存活的相对主流Java虚拟机。

HotSpot VM
Oracle JDK和OpenJDK中自带的虚拟机,是最主流的和使用范围最广的Java虚拟机。介绍Java虚拟机的技术文章,如果不做特殊说明,大部分都是介绍HotSpot VM的。HotSpot VM并非是Sun公司开发的,而是由Longview Technologies这家小公司设计的,它在1997年被Sun公司收购,Sun公司又在2009年被Oracle收购。
J9 VM
J9 VM 是IBM开发的VM,目前是其主力发展的Java虚拟机。J9 VM的市场定位和HotSpot VM接近,它是一款设计上从服务端到桌面应用再到嵌入式都考虑到的多用途虚拟机,目前J9 VM的性能水平大致跟HotSpot VM是一个档次的。
Zing VM
以Oracle的HotSpot VM为基础,改进了许多会影响延迟的细节。最大的三个卖点是:

  • 1.低延迟,“无暂停”的C4 GC,GC带来的暂停可以控制在10ms以下的级别,支持的Java堆大小可以到1TB;
  • 2.启动后快速预热功能。
  • 3.可管理性:零开销、可在生产环境全时开启的、整合在JVM内的监控工具Zing Vision。
1.2 Java虚拟机执行流程

当我们执行一个Java程序时,它的执行流程是怎样的呢?如下图所示。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值