gpt4 book ai didi

java - JVM(Java虚拟机)是一个抽象机器。

转载 作者:行者123 更新时间:2023-12-01 16:52:16 25 4
gpt4 key购买 nike

我是一个java初学者。我刚刚读了一行“JVM(Java虚拟机)是一个抽象机。”任何人都可以帮助我理解术语抽象机。什么是抽象机。

最佳答案

JVM = JAVA VIRTUAL MACHINE:- 虚拟一词本身表明它不存在物理

详细说明:

摘要意味着隐藏

  1. 汇编程序在计算机上运行时,是在系统运行环境中执行的:

    属性

    • 平台相关(如果为 Windows 编译,程序将仅在 Windows 中运行,而不是在 Linux/UNIX 等中运行)
    • 不可携带(同上)
    • 系统运行时(在用户的 PC 中,主要在操作系统的控制下)
  2. 当Java程序运行到一台计算机上时,它在另一台虚拟机(JVM)中执行,运行时环境由JRE(JAVA Runtime Environment)提供,安装了JRE当您安装 JDK(Java 开发工具包)时自动安装。

没有JRE,就不可能运行Java程序(更新:您可以将自定义JRE与您的代码捆绑在一起,在这种情况下,无需单独安装JDK或JRE,而只能在JDK9及以上版本中安装)

这个 JVM 本身在系统运行时(在用户的 PC/OS 中)运行但是当 Java 程序运行时它会被加载到这个正在运行的 JVM 中。

为了获得更实用和视觉体验:(仅适用于Windows)

  1. 打开任务管理器
  2. 转到“进程”选项卡
  3. 查找 Java(TM) Platform SE 二进制文件(这是 JVM)- Java 实例

现在运行一个java程序并编写一些代码来延迟执行,例如带有wait和notify的多线程(你可以在google上找到这样的程序),由于这个正在运行的程序你的Java实例 会显示内存和磁盘使用率稍高(不是很高,但比 JRE/JVM 中没有程序运行时略高)。您在任务管理器中看到的这些进程正在系统运行时中运行,并且您的 Java 程序不会在那里列出。

相反,它将在已经运行的 JRE 中运行。

这就是 JVM 是抽象的原因。

现在,做一些交叉检查并证明它..

运行2-3个java程序,要么让它们等待更长时间,要么只编写Input Scanner并且不提供输入,程序将继续以阻塞状态运行,以便我们稍后可以看到它们。

一旦获得,请确认任务管理器中只有一个JVM/Java实例在运行(取决于你安装了多少个JRE,有时IDE也可以创建一个实例,所以最好先关闭它以便清楚观察)

现在,那 2-3 个 Java 程序在哪里运行?打开 VisualVM(它位于 java 可执行文件所在的同一包/文件夹下)..

在此 VisualVM 中,您可以清楚地看到,所有正在运行的 Java 程序都已列出。

现在,打开并排窗口...任务管理器、VisualVM 和运行代码的控制台之一。

验证,

  • 在任务管理器中 - 1 个 Java Binary 实例。
  • 在 VisualVM 中 - 程序的 3 个不同实例(如果运行 3 个 java 程序)

现在,在您的代码之一中提供输入,以便阻塞状态消失并且程序成功终止。

现在验证,

  • 在任务管理器中 - 仍然有 1 个 Java Binary 实例。
  • 在 VisualVM 中 - 2 个实例,因为 1 个代码终止/完成。

因此,所有 Java 程序都在虚拟机下运行,虚拟机是隐藏的、物理上不可用的、抽象的机器。

关于java - JVM(Java虚拟机)是一个抽象机器。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37760309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com