返回顶部
首页 > 资讯 > 精选 >Java JVM虚拟机是如何运行的
  • 426
分享到

Java JVM虚拟机是如何运行的

javajvm虚拟机 2023-05-31 17:05:34 426人浏览 安东尼
摘要

本篇文章为大家展示了Java JVM虚拟机是如何运行的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一:JVM基础概念      &nbs

本篇文章为大家展示了Java JVM虚拟机是如何运行的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一:JVM基础概念

         JVM(Java虚拟机)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。

         Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。

下面看下Jvm的体系结构图:

Java JVM虚拟机是如何运行的

二:解释型语言和编译型语言的联系与区别。

编译型语言是通过编译器将程序编译成目标机器所能识别的机器码,而解释型语言不需要编译过程,由该语言的解释器读取脚本,按照语法规则进行解释,然后调用解释器内建的命令(或者库函数)。例如,C语言的printf()函数经过静态编译后,printf()所需的所以代码都以机器码的形式写入可执行文件中,shell在执行程序时,在指定路径搜索该文件,然后加载器(Loader)加载该程序的ELF文件到内存中,跳转到程序入口,将控制权交由该程序。

动态编译的情况有些不同。由于printf()是很常用的函数,系统将常用函数集中起来做成库,当我写一个Myprintf()函数时调用printf() 时,动态编译后形成的ELF文件不会包含printf()相关的代码,但是会有些信息告诉系统:“我的程序将会调用printf(),因此我需要printf()的地址”。加载ELF文件后,首先运行动态连接器(ldd),ldd知道程序依赖的动态库,系统中如果没有加载该动态库,就会通知系统加载该库,并把库函数的入口地址绑定到程序需要的地方,然后跳转到程序入口地址,开始运行程序。这里,我们所写的程序一经编译,就变成特定机器的机器码和一些附属信息(符号表,地址,变量值等),然后通过系统加载运行机制就变成“动态程序”——进程。

解释型语言的执行过程离不开解释器,python,perl,ruby等等。所以脚本的第一行一般是#/usr/bin/×××。×××代表了各语言相应的解释器。脚本一般由表达式(expression)和Block of expressions组成,解释器首先要做的就是分析并理解表达式结构,形成“执行序列”。这个“执行序列”是中立的,不针对任何native Machine,所以“可移植性”高。这里不用“字节码”代替“执行序列”是考虑到在jvm中有字节码的概念,他们之间有显著的不同。决定执行序列是解释器最主要的作用。假设,Python输出的函数为python_print(),那么python解释器在“解释”脚本时遇到这个表达式就将调用系统的print()函数执行输出操作。你也可以把脚本理解成高级配置文件,这个文件指导python解释器如何运行,解释器内部已经制订了“如何”运行的若干规则。

三:Java的执行过程

JVM执行Java程序要比上述两个复杂,因为它已经被称作machine了。下图是JVM的结构框图。主要包含:垃圾回收器,类加载子系统,执行引擎,运行时数据区等。

上述内容就是Java JVM虚拟机是如何运行的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: Java JVM虚拟机是如何运行的

本文链接: https://lsjlt.com/news/227208.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java JVM虚拟机是如何运行的
    本篇文章为大家展示了Java JVM虚拟机是如何运行的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一:JVM基础概念      &nbs...
    99+
    2023-05-31
    java jvm 虚拟机
  • 如何进行JVM虚拟机中Java的编译期优化与运行期优化
    这篇文章将为大家详细讲解有关如何进行JVM虚拟机中Java的编译期优化与运行期优化,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。java编译期优化java语言的编译期其实是一段不确定的操作过...
    99+
    2023-06-02
  • java虚拟主机运行的原理是什么
    Java虚拟主机(JVM)是一个虚拟的计算机,它运行在真实计算机上。JVM可以执行Java字节码文件,将其转换为可执行代码并在操作系...
    99+
    2023-06-12
    java虚拟主机 虚拟主机
  • JVM与Java虚拟机的联系是什么
    JVM与Java虚拟机的联系是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。你对JVM是否了解,这里向大家描述一下它的概念以及用法,JVM是Java Virtual M...
    99+
    2023-06-17
  • java中虚拟机jvm原理是什么
    这篇文章将为大家详细讲解有关java中虚拟机jvm原理是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。曾几何时,我们还是初识Hello World的时候,我们哪曾知道,Java这门神奇的语言,在执行我...
    99+
    2023-06-25
  • 虚拟主机怎么运行java
    要在虚拟主机上运行Java,您需要确保虚拟主机上安装了Java运行时环境(JRE)或Java开发工具包(JDK)。然后按照以下步骤进...
    99+
    2023-08-31
    虚拟主机 java
  • 虚拟主机是怎么运行的
    虚拟主机是一种通过在一台物理服务器上创建多个虚拟的独立主机环境来提供网站和应用程序托管服务的技术。以下是虚拟主机的运行方式:1. 共...
    99+
    2023-08-08
    虚拟主机
  • JVM虚拟机指的是什么
    本篇文章给大家分享的是有关JVM虚拟机指的是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。这里向大家描述一下JVM虚拟机的概念,JVM是JavaVirtualMachine...
    99+
    2023-06-17
  • 虚拟主机如何运行程序
    虚拟主机是一种服务器分配资源的方式,它可以在一台物理服务器上运行多个虚拟主机,每个虚拟主机都可以运行独立的程序。下面是虚拟主机运行程...
    99+
    2023-09-06
    虚拟主机
  • 云虚拟主机如何运行node.js
    要在云虚拟主机上运行Node.js,您需要遵循以下步骤:1. 登录到您的云虚拟主机控制台或通过SSH连接到虚拟主机。2. 确保您的虚...
    99+
    2023-09-17
    云虚拟主机 node.js
  • win11自带虚拟机如何运行
    Windows 11自带的虚拟机是Windows Sandbox,可以让用户在安全的环境中运行不受信任的应用程序或文件。以下是运行W...
    99+
    2023-10-09
    win11
  • 如何在java虚拟机中使用jvm方法
    这篇文章主要介绍了如何在java虚拟机中使用jvm方法,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!使用下面代码:for (int i = 0; i&n...
    99+
    2023-06-06
  • Java虚拟机运行时栈的栈帧
    目录Java虚拟机栈概述局部变量表操作数栈动态连接方法的返回地址结合javap命令理解栈帧Java虚拟机栈概述 Java虚拟机栈(Java Virtual Machine Stack...
    99+
    2024-04-02
  • Java虚拟机栈jvm栈的作用
    目录1. 定义2. 栈的线程安全问题3. 栈内存溢出1. 定义 栈:线程运行时需要的内存空间,一个栈存在多个栈帧。栈具有先入后出,后入先出的特点。 栈帧:每个方法运行时需要的内存(局...
    99+
    2024-04-02
  • Java虚拟机怎么利用JVM进行优化
    本篇文章为大家展示了Java虚拟机怎么利用JVM进行优化,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言Java虚拟机是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最...
    99+
    2023-05-31
    java jvm ava
  • Java JVM虚拟机调优详解
    目录jmap查看内存信息jstackjinfo查看jvm系统参数Jstat查看堆内存使用和类加载的数量信息内存泄漏jmap查看内存信息 jmap histo /pid > ./...
    99+
    2024-04-02
  • 如何理解Java虚拟机及JVM体系结构是什么
    今天就跟大家聊聊有关如何理解Java虚拟机及JVM体系结构是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。JVM(Java 虚拟机)Java虚拟机,java源文件(.java)通...
    99+
    2023-06-17
  • 如何用xampp运行php虚拟主机
    要在XAMPP上运行PHP虚拟主机,您需要按照以下步骤进行设置:1. 下载和安装XAMPP:从Apache Friends官方网站(...
    99+
    2023-09-12
    虚拟主机 php
  • 如何理解Java虚拟机运行时数据区域
    这期内容当中小编将会给大家带来有关如何理解Java虚拟机运行时数据区域,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、程序计数器(Program Counter Register)当前线程所执行的字节码...
    99+
    2023-06-05
  • JAVA虚拟机(JVM)详细介绍(一)——JVM概述
    首先,对以上的四部分进行解释。(1)自动内存管理讲的是java运行时数据区里的部分,分为内存划分和垃圾收集器。(2)执行子系统讲的是画红圈的三部分:类文件结构、类加载机制、字节码执行引擎。(3)优化分别为编译期优化和运行期优化。(4)并发讲...
    99+
    2016-06-30
    java教程 JVM
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作