文章目录

  • 前言
  • 1.JVM是什么
  • 2.JAVA技术体系
  • 3.JVM包含的几个核心模块
  • 4.后续文章安排
  • 999.参考资料


前言

本文主要介绍JVM的前世今生,主要包含以下几个模块

  1. 介绍jvm是什么
  2. Jvm主要要负责的功能模块有哪几个
  3. 后续文章安排

1.JVM是什么

Java虚拟机(英语:Java Virtual Machine,缩写为JVM),一种能够运行Java bytecode虚拟机,以堆栈结构机器来进行实做。最早由Sun微系统所研发并实现第一个实现版本,是Java平台的一部分,能够运行以Java语言写作的软件程序

Java虚拟机有自己完善的硬体架构,如处理器堆栈寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。通过对中央处理器(CPU)所执行的软件实现,实现能执行编译过的Java程序码(Applet与应用程序)。

作为一种编程语言的虚拟机,实际上不只是专用于Java语言,只要生成的编译文件符合JVM对加载编译文件格式要求,任何语言都可以由JVM编译运行。此外,除了甲骨文,也有其他开源或闭源的实现。

---------上述定义来源于 维基百科

也就是说

  1. JVM的上游是 各类编程语言的应用程序,下游是各个具体的操作系统平台。
  2. JVM的输入是字节码(bytecode),能将字节码在内部进行翻译成底层各个操作系统能的懂的语言(各个操作系统的CPU指令集),从而与底层操作系统进行调用交互。
  3. 也就是说 JVM需要能
  1. 将上游应用程序语言翻译底层操作系统的指令集
  2. 能整合底层操作系统的运行机制,为上游提供运行能力

从上面定义中大概能清楚JVM所处的位置,也模糊的了解了JVM的工作内容了,那是谁将我们编写的类文件变成字节码的呢,我们平时只是需要安装JDKtomcat就可以;也没听说要安装JVM呀,各位看客们,别急,这就给你们一一道来。

2.JAVA技术体系

我们先来看一张整体架构图

java虚拟机 cpu java虚拟机的英文简称_jvm

来,提问:擦操作系统应该放在图中的哪个位置???

哈哈哈哈哈,当然是图的最下面啦,也就是在 java虚拟机下面应该是各类的操作系统。如Linux操作系统MAC OS操作系统Windows操作系统

从图中可以看出来

  1. JDK包含了开发的工具包和JRE
  2. JRE是提供能运行的核心服务,包括JVM和Java核心类库和支持文件

也就是说 平时我们安装的时候 安装JDK就已经把JRE安装进去啦,里面是包括JVM的。

再来回答我们上面的问题 <是谁将我们编写的类文件变成字节码的呢>,这个是我们的javac;javac会将我们的.java的源文件编译成.class的字节码文件;然后交给虚拟机来进行解释执行。javac的编译具体做的事情我们后续会有专门为文章进行讲解。

3.JVM包含的几个核心模块

我们已经知道了JVM的输入来源 是符合标准的字节码 也已经知道它要做的事情将字节码进行编译与底层操作系统进行调用执行程序。而我们知道 操作系统的核心几个要素就是:进程与线程内存管理文件管理调度这四大模块。而JVM的底层交互便是 操作系统,因为从JVM的上下游和它所需要完成的工作角度来看,JVM可以分为以下三大核心模块

  1. 解释执行模块。负责解释输入的字节码并完成执行操作
  2. 内存管理模块。对编译执行期间占用的内存进行管理
  3. 线程调度与安全。对上游并发程序的执行的支持

我们后续的文章也将围绕这几大核心模块来讲解

4.后续文章安排

java虚拟机 cpu java虚拟机的英文简称_字节码_02