专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

java虚拟机是什么,深入理解java虚拟机

来源:小易整编  作者:小易  发布时间:2023-03-22 04:23
摘要:java虚拟机是什么,深入理解java虚拟机文章目录一、Java虚拟机是什么二、为什么需要了解Java虚拟机三、JavaJDK的迭代历史四、Java虚拟机发展史与种类五、Java虚拟机规范六、Java虚拟机语言无关性七、Java虚拟机的组成...

java虚拟机是什么,深入理解java虚拟机

七、Java 虚拟机的组成

虚拟机的组成可以简单那划分为 类加载器、执行引擎,以及运行时数据区里面的 堆、方法区、程序计数器、虚拟机栈、本地方法栈 等。

java虚拟机是什么,深入理解java虚拟机

字节码文件

我们编写的 Java 代码在经过编译后就会转换为 Java 虚拟机可以执行的字节码文件,字节码文件中包含了 魔数、编译的版本号、常量池 以及 字节码指令 等;

类加载器

在 Java 中执类初始化时,需要执行 加载、链接 和 初始化 三个阶段,其中类加载器就是在 加载阶段 中用于将本地或网络中的 字节码文件 加载到 Java 虚拟机中的工具。

堆是在 JVM 启动时创建的,是 JVM 运行时数据区中的一块线程共享的内存区域,其内存空间在逻辑上连续,但物理上不一定连接,其主要用于存储 Java 中的 成员变量、类变量 以及 引用类型的局部变量 等。

方法区

方法区是在 JVM 启动时创建的,是 JVM 运行时数据区中的一块线程共享的内存区域,其内存空间在逻辑上连续,但物理上不一定连接,主要用于存储 类信息、方法信息、域信息、JIT代码缓存、运行时常量池。

虚拟机栈

虚拟机栈是 JVM 运行时数据区中的一块线程私有的内存区域,每当我们创建一个 线程 时就会创建一个 虚拟机栈。虚拟机栈主要用于存储线程的 栈帧,每当线程调用方法时就会创建一个栈帧,线程会在栈帧中执行代码计算逻辑,存储计算过程中的中间变量,和方法中的局部变量,当线程调用方法结束后就会使栈帧出栈,销毁栈帧中的数据。

本地方法栈

本地方法栈和虚拟机栈一样,都是用于存储线程执行 方法 时的一些数据,不过虚拟机栈只会在线程调用 Java 中的方法时起作用,而本地方法栈则是线程调用 Native 类型的方法时起作用。

程序计数器

程序计数器是 JVM 运行时数据区中的一块线程私有的内存区域,每当我们创建一个线程时就会创建一个程序计数器,其主要用于记录线程执行到的 字节码位置,这样可以保证线程在获得 CPU 时间片后执行时,能够恢复到正确的执行位置。

八、JVM 的生命周期

JVM 生命周期主要有三个部分,主要是虚拟机 启动、运行 和 退出 几个过程。

启动

  • Java 虚拟机的启动是通过引导类加载器 (Bootstrap Class Loader) 创建一个初始类 (initial class) 来完成的,这个类是由虚拟机的具体实现指定的。

  • 自定义的类是由系统类加载器加载的。自定义类的顶级父类都是 Object,Object 作为核心 API 中的类,是需要被引导加载器 (bootstrap class loader) 加载的。父类的加载是优先于子类加载的,所以要加载自定义类之前,会就加载 Object 类。

执行

  • JVM 运行启动以后有一个清晰的任务,那就是说只要执行 Java 程序,Java 程序执行时 JVM 才会运行,Java 程序结束时 JVM 就会停止。

  • 执行一个所谓的 Java 程序的时候,真真正正在执行的是一个叫做 Java 虚拟机的进程。

退出

JVM 在执行过程中,如果遇到以下几种情况就会退出:

  • ① 程序正常执行结束;

  • ② 程序在执行过程中遇到了异常或错误而异常终止;

  • ③ 由于操作系统用现错误而导致 Java 虚拟机进程终止;

  • ④ 某线程调用 Runtime 类或 system 类的 exit 方法,或 Runtime 类的 halt 方法,并且 Java 安全管理器也允许这次 exit 或 halt 操作;

  • ⑤ 除此之外,JNI(Java Native Interface)规范描述了用 JNI Invocation API 来加载或卸载 Java 虚拟机时,Java 虚拟机的退出情况;


本文地址:百科问答频道 https://www.neebe.cn/wenda/936272_3.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!

共3页 1 2 3 当前是最后一页

百科问答
小编:小易整编
相关文章相关阅读
  • 虚拟机关机命令poweroff方法

    虚拟机关机命令poweroff方法

    虚拟机是虚拟技术。许多用户将使用虚拟机上的命令自定义操作关机,使其方便快速,有更多的时间来处理其他事情,然后没有其他更容易的Poweroff应该不是命令?让我们来看看。虚拟机命令Poweroff方法首先,Poweroff.1,Powerof...

  • 虚拟机怎么联网?

    虚拟机怎么联网?

    在使用VMwareWorkstation10工作时会遇到形形色色的问题,比如需要设置虚拟机联网。那么如何进行操作呢?下面小编与你分享具体步骤和方法。操作方法01启动Windows10操作系统,如...

  • ESXi虚拟机是什么意思?

    ESXi虚拟机是什么意思?

    ESXi虚拟机是一种虚拟化技术,是指在一台物理主机(服务器、台式机或笔记本电脑)上运行多个虚拟机操作系统。ESXi虚拟机可以让多个不同操作系统(如Windows、Linux等)同时运行在一台物理主机上,每个虚拟机都有自己的虚拟CPU、虚拟...

  • 如何卸载Vmware Workstation虚拟机

    如何卸载Vmware Workstation虚拟机

    介绍Win7系统下卸载VmwareWorkstation虚拟机。操作方法01单击“开始”-“控制面板”,打开控制面板。02在控制面板窗口中,单击“卸载程...

  • 爱快虚拟机是什么意思?

    爱快虚拟机是什么意思?

    爱快虚拟机是一种将计算机硬件资源虚拟化的软件,可以在一台计算机上同时运行多个操作系统,并且每个操作系统在虚拟环境下都可享有独立的计算资源。爱快虚拟机通过模拟硬件环境,为用户提供一个类似真实计算机的虚拟环境,用户可以在该虚拟环境中安装不同的...

  • 安卓虚拟机有什么用

    安卓虚拟机有什么用

    安卓虚拟机可以实现在PC端电脑上安装运行模拟Android系统,主要可以让用户在电脑端安装和使用手机端上的软件APP,甚至还可以像手机一样连接电脑,可以模拟大部分官方版本的安卓系统和软件,主要作用是用于调试手机使用环境下的应用程序。虚拟机(...

  • Docker和虚拟机有什么区别

    Docker和虚拟机有什么区别

    Docker和虚拟机是两种常见的容器化技术,它们在实现隔离和部署应用程序方面有所不同。Docker和虚拟机在架构、隔离性、资源消耗、部署和扩展、系统支持、管理和配置以及生态系统等方面存在差异。根据您的需求和场景选择合适的技术可以更好地满足您...

  • 虚拟机有什么用

    虚拟机有什么用

    虚拟机可以安装各种演示环境,便于做各种测试;减少了不必要的垃圾安装程序,保证主机的快速运行;避免每次重新安装;在虚拟机中能够随便安装和彻底删除测试用的一些程序和工具;体验不同版本的操作系统,如Linux、Mac等。随着科技的不断发展与人民生...

  • 周排行
  • 月排行
  • 年排行

精彩推荐