深入解析Android虚拟机--第2章 Java虚拟机基础

2020-10-17  本文已影响0人  涵仔睡觉

一、虚拟机的作用

虚拟机(Virtual Mechine)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

虚拟机的分类:

二、Java虚拟机概述

Java虚拟机(Java Virtual Mechine,简称JVM)是一个虚拟出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有完善的硬件架构(处理器、堆栈、寄存器等)和相应的指令系统。


image.png

引入JVM后,Java在不同平台上运行时不需要重新编译,JVM屏蔽了与具体平台相关的信息,使得Java只需生成在JVM上运行的目标代码(字节码),就可以不加修改地运行。JVM执行字节码时,会把字节码解释成具体平台上的机器指令执行。

2.1JVM的数据类型

image.png
image.png

JVM的实现会拒绝执行违法类型规定的字节码程序。从JVM支持的数据类型可以看出,Java对数据类型的内部格式进行了严格规定,使得各种JVM的实现对数据的解释相同,从而保证Java的与平台无关性和可移植性。

2.2 JVM体系结构

JVM由以下5部分组成:

do {
    取一个操作符字节;
    根据操作符的值执行一个动作;
} while(程序未结束)

JVM是栈式的,不定义或使用寄存器来传递或接收参数,保证指令集的简洁性和实现时的高效性。

2.3 JVM的生命周期

JVM的天职时负责运行一个Java程序,在启动一个Java程序的同时会生成一个JVM实例,当该程序退出时,JVM实例也随之消亡。JVM实例通过调用某个初识类的main方法来运行一个程序,这个main方法必须时public、static、返回值为void,并且接收一个字符串数组作为参数。

JVM内部有两种线程:守护线程和非守护线程。只要还有非守护线程在运行,那么Java程序也在继续运行。当所以非守护线程都终止时,JVM实例将自动退出。

上一篇 下一篇

猜你喜欢

热点阅读