美文网首页
虚拟机系列 | JVM特点,基础结构与执行周期

虚拟机系列 | JVM特点,基础结构与执行周期

作者: 知了一笑 | 来源:发表于2020-09-19 17:35 被阅读0次

一、虚拟机简介

1、虚拟机概念

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。

2、JVM虚拟机

JVM是Java-Virtual-Machine的缩写,即Java虚拟机,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

3、JVM特点

01-1.png

首先一次编译处处运行是学习Java语言都知道的事情,其实并不是Java语言跨平台,是JVM跨平台,Jvm运行时并不是执行Java文件,而是执行编译后的.class文件。

字节码

字节码文件即JVM可以识别并执行的二进制文件,不同的编程语言经过编译器编译处理之后,转换成统一的字节码规范文件,这样JVM就可以执行。

跨平台

跨平台的特性即JVM虚拟机可以运行在不同的计算机系统上,例如经常使用的Linux系统,MacOS系统,Win系统,一次编译,处处运行就是这样理解的。

跨语言

随着JVM的不断发展和优化,很多语言都借助JVM的能力,各种编程语言经过编译,转换为字节码文件,JVM都可以识别,这也是现在Java体系下业务编程经常混语言的原因。

注意:现在和后续Jvm系列文章都是基于HotSpot-VM和JDK1.8+版本的基础之上。

二、虚拟机结构

Jvm的整体结构大致如下:

01-2.png

1、类加载器

类加载器用来加载Java类到JVM虚拟机中,源代码程序.java文件在经过编译器编译之后就被转换成字节代码.class文件,类加载器负责读取字节代码,并转换成java.lang.Class类的一个实例。

2、运行时数据区

元数据区

JDK1.8开始的说法,之前称为方法区Method-Area,存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

堆区

所有线程共享的一块内存区域,虚拟机启动时被创建用来存放对象实例。

JVM栈

可以参考了解栈的数据结构,存放Java方法执行的内存模型,在Java开发中,一个功能实现需要多个子程序方法配合,程序执行时跳往子程序前,会将下个指令的地址存到堆栈中,直到子程序执行完后再将地址取出,退回到原来的程序中。

本地方法栈

本地方法栈和虚拟机栈的功能类似,为JVM调用native方法时服务。

程序计数器

相对较小的一块内存空间,作用可以理解是当前线程所执行的字节码的行号指示器。

3、执行引擎

Java虚拟机最核心的组成部分,输入的是字节码,处理过程是字节码解析,输出执行结果。

三、生命周期

这里说的JVM生命周期,指JVM执行Java程序时的周期:

启动初始化:启动时通过引导类加载器创建初始类完成;

程序执行:从main方法开始,执行Java程序,直到程序执行完结束;

虚拟机退出:程序正常执行结束,或者发生异常、错误等而造成终止,也可以调用exit退出方法;

四、HotSpot虚拟机

HotSpot是Java体系下使用最多的虚拟机,它结合了最新的内存模型,垃圾收集器和自适应优化器,为使用许多先进技术的Java应用程序提供了最佳性能。

主要原因:使用多,大部分的Java运行环境都依赖HotSpot虚拟机。

相关文章

  • 虚拟机系列 | JVM特点,基础结构与执行周期

    一、虚拟机简介 1、虚拟机概念 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运...

  • JVM学习笔记(二)

    一.JVM与程序的生命周期 Java虚拟机结束生命周期: ①执行了System.exit()方法。 ②程序正常执行...

  • JAVA虚拟机(JVM)三:类加载器子系统

    JAVA虚拟机(JVM)系列:JAVA虚拟机(JVM)一:了解JAVA体系结构JAVA虚拟机(JVM)二:JVM工...

  • JAVA虚拟机(JVM)一:了解JAVA体系结构

    JAVA虚拟机(JVM)系列:JAVA虚拟机(JVM)一:了解JAVA体系结构JAVA虚拟机(JVM)二:JVM工...

  • 虚拟机

    前言 本篇文章将会介绍Java虚拟机(JVM)的结构等基础知识、Dalvik(DVM)/ART虚拟机与JVM的比较...

  • 虚拟机概述

    前言 本篇文章将会介绍Java虚拟机(JVM)的结构等基础知识、Dalvik(DVM)/ART虚拟机与JVM的比较...

  • JVM系列一(入门)

    Java虚拟机(JVM)系列一 虚拟机与Java虚拟机 JVM(Java Virtual Machine) 学习视...

  • <深入理解JAVA虚拟机>读书笔记

    概要 基础知识 内存管理 执行引擎 编译与代码优化 高效并发 64位虚拟机 VS 32位虚拟机 JVM虚拟机 性能...

  • JVM

    JVM组成 jvm由类加载器+内存+执行引擎 JVM内存区域 堆 线程共享 存储对象 虚拟机栈 线程私有,生命周期...

  • Java基础

    Java基础 JDK、JRE、JVM JVM java虚拟机,运行java程序的程序,包含类加载器、内存、执行引擎...

网友评论

      本文标题:虚拟机系列 | JVM特点,基础结构与执行周期

      本文链接:https://www.haomeiwen.com/subject/dvtyyktx.html