JVM基础总结

 2023-09-15 阅读 26 评论 0

摘要:前言 作为一名Java开发人员,有必要对JVM有一个全面系统的认识,从而更好的指导在开发过程中指导我们更高效的开发,以及解决生产中的问题 1、什么是JVM JVM全称Java虚拟机,即Java应用运行的环境(Java二进制字节码的运行环境) Java虚拟机是一台执行J

前言

作为一名Java开发人员,有必要对JVM有一个全面系统的认识,从而更好的指导在开发过程中指导我们更高效的开发,以及解决生产中的问题

1、什么是JVM

JVM全称Java虚拟机,即Java应用运行的环境(Java二进制字节码的运行环境)

  • Java虚拟机是一台执行Java字节码得虚拟计算机,拥有独立得运行机制,但是其运行的Java字节码文件未必由Java语言编译而成,可以理解为一套标准定义的规范
  • JVM平台支持的各种语言可以共享Java虚拟机带来的跨平台性、优秀的垃圾回收器,以及可靠的即时编译器
  • Java技术的核心就是Java虚拟机,所有Java程序都运行在Java虚拟机内部

java基础知识点总结归纳?2、JVM使用优势

相比其他语言,遵从JVM规范编写得程序具备下面几个优势:

  • 一次编写,到处运行
  • 自动管理内存,具有垃圾回收功能(C语言需要手动释放)
  • 数组下标越界检查
  • 多态,让语言结构更丰富

在这里插入图片描述

JVM组成结构图

基础。关于JVM的组成结构图,网上的参考资料众多,下面是以JDK8为例的一副简单的逻辑结构图

在这里插入图片描述

理解这幅图需要从java的class文件开始,到内部的各个模块的作用,结合在一起进行理解可能会对JVM的组成有更深入的认识,下面简单说明下内部各个组件的基本功能,方便我们对JVM运行时各个组件有一个基础的认识,后续会对各个组件做深入的介绍

类加载子系统:

对jvm的理解?通过这个类加载子系统对前面编译好的class文件进行加载,即读取class文件,然后将读取到的数据存放到内存中,即运行时的数据区

运行时数据区:

可以理解为Java程序运行时由JVM提供的一块特殊的内存区域,保存类加载子系统读取的数据,以及整个class文件在运行期间产生的各种数据,比如堆中的对象等

线程共享区:

java基础知识笔记。Java程序运行过程中,一块所有Java程序可以共享访问的内存数据区域,主要包括2个部分,堆和方法区

堆区:

存放对象的区域,比如通过new 获取反射等方式产生的对象都放在这个区域,是JVM最复杂也是JVM调优最关注的区域

方法区:

jvm详解、由类加载子系统读取并加载过来的类的元数据,比如方法的定义,类或方法中的常量

线程私有区:

为Java程序运行过程中的每个线程开辟的一块独立运行的私有内存空间,以保存各自的线程运行过程中产生的各自数据

虚拟机栈:

java jvm详解,保存程序运行时,线程内方法互相调用过程中的栈信息,比如A方法调用B方法,B又调用C,这个互相调用过程中产生的数据就存储在虚拟机栈中,属于线程私有的一块内存空间,其生命周期和线程生命周期一致

程序计数器(PC寄存器):

我们指导程序云心过程中,实际上就是代码一行行执行的结果,而代码的执行是需要CPU通过时间片进行调度的,CPU为当前执行的程序分配了时间片,程序就可以执行,但是CPU的时间片需要切换以便在同一时间处理更多的事情,假如某一时刻Java程序被分配到了时间片,就有机会继续执行,但是时间片被分走了,下一次怎么知道程序走到哪儿了呢?

因此程序计数器的作用就体现出来了,可以记录每次程序代码运行的位置,以便下一次的执行

本地方法栈:

和虚拟机栈不同的是,本地方法栈保存的是本地方法执行的结果,比如Java程序调用了本地操作系统的某个方法,其执行结果就存在于这个本地方法栈中

执行引擎:

将Java程序运行过程中产生的各种需要的计算数据输出到CPU中进行加工,然后再将CPU执行的结果回传给JVM运行时的数据区域中,可以理解为执行引擎的主要职责是用于计算,作为一个中间人存在与CPU交互

本地方法接口:

由于Java程序无法直接操作本地系统中的方法,通过JVM中的本地方法接口调用操作系统中的本地方法,并将产生的结果回传给运行时数据区

本篇简单总结了JVM的基础构成并对相关的内部组件做了一些简单的介绍,希望对看到的同学有用,本篇到此结束,最后感谢观看!

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/62810.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息