我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java程序的运行过程是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java程序的运行过程是什么

本篇内容主要讲解“Java程序的运行过程是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java程序的运行过程是什么”吧!

    Java程序运行过程

    运行一个Java程序的步骤

    编辑源代码xxx.java

    编译xxx.java文件生成字节码文件xxx.class

    JVM中的类加载器加载字节码文件

    JVM中的执行引擎找到入口方法main(),执行其中的方法

    Java程序的运行过程是什么

    一、从源码到字节码

    从我们写的java文件到通过编译器编译成java字节码文件(也就是.class文件),这个过程是java编译过程;

    字节码文件:真正实现了java语言的跨平台。各种不同平台的虚拟机都统一使用这种相同的程序存储格式。

    更进一步说,jvm运行的是class字节码文件,只要是这种格式的文件就行,所以,实际上jvm并不像我之前想象地那样与java语言紧紧地捆绑在一起。

    把一个简单的HelloWorld程序生成的字节码文件重定向为txt文件:

    javap -v HelloWorld > HelloWorld.class.txt,部分信息如下

    Java程序的运行过程是什么

    一份字节码文件包含了魔数与 Class 文件的版本,常量池,访问标志等等信息,总之,字节码文件很简单很强大,它存放了这个类的各种信息:字段、方法、父类、实现的接口等各种信息。 

    二、JVM虚拟机运行时数据区

    Java虚拟机要运行字节码指令,就要先加载字节码文件,谁来加载,怎么加载,加载到哪里……谁来运行,怎么运行呢?

    JVM在执行Java程序的过程中会把它所管理的内存分为若干个不同的区域,这些区域都有各自的用途。

    Java程序的运行过程是什么

    程序计数器:可以看作是当前线程所执行的字节码的行号指示器(指示当前线程,所以是线程私有的),字节码解释器工作时需要通过改变这个程序计数器的值来选取下一条所需要执行的字节码指令,循环、跳转、异常处理、线程恢复等基础功能都要依赖它来完成。

    JVM栈:描述的是Java方法执行的内存模型:每个方法在执行时都会创建一个栈帧,用于存储局部变量表,操作数栈,动态链接和方法出口等信息。每一个方法从调用直到执行完成的过程,就对应一个栈帧从虚拟机栈中入栈到出栈的过程。

    本地方法栈:虚拟机栈执行的是Java方法(也就是字节码)服务,而本地方法栈则为虚拟机所使用到的Native方法服务。

    堆:是被所有线程共享的一块区域,在虚拟机创建是创建,此内存的唯一目的是存放对象实例,它也是垃圾收集器管理的主要区域。

    方法区:也是所有线程共享的一块区域,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

    方法区中有运行时常量池。

    总结:JVM的功能模块主要包括类加载器、执行引擎和垃圾回收系统。 

    三、类加载器加载xxx.class到内存

    虚拟机把描述类的数据从字节码文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 

    四、虚拟机字节码执行引擎

    执行引擎找到main()这个入口方法,执行其中的字节码指令。

    执行引擎处理过程:输入字节码文件,进行字节码解析的等效过程,输出执行结果。

    到此,相信大家对“Java程序的运行过程是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    Java程序的运行过程是什么

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    Java程序的运行过程是什么

    本篇内容主要讲解“Java程序的运行过程是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java程序的运行过程是什么”吧!Java程序运行过程运行一个Java程序的步骤1、编辑源代码xxx.
    2023-07-05

    Java中程序的运行全过程

    这篇文章主要介绍了Java中程序的运行全过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-01

    Java程序运行的机制是什么

    本篇文章为大家展示了Java程序运行的机制是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。JVM(Java虚拟机)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集
    2023-05-31

    java程序的运行环境是什么

    今天小编给大家分享一下java程序的运行环境是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。java程序的运行环境简称为
    2023-07-04

    java程序是怎么运行的

    java程序执行过程分为两步,下图为流程示意图第一步:将java源码(.java文件)通过编译器(javac.exe)编译成JVM文件(.class文件)第二步:将JVM文件通过java.exe执行,输出结果 (推荐学习:java课程)通过
    java程序是怎么运行的
    2019-06-19

    java中prepareCall()运行存储过程是什么

    使用JDBC的prepareCall()方法可执行存储过程,该方法返回一个CallableStatement对象,可用于设置参数、执行存储过程和检索其结果。语法:CallableStatementprepareCall(Stringsql)throwsSQLException;步骤:获取连接创建CallableStatement设置参数执行存储过程检索结果关闭连接
    java中prepareCall()运行存储过程是什么
    2024-04-10

    java的运行过程是怎样的

    这篇文章给大家介绍java的运行过程是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。java的运行流程一,我们所看不到的:1,如果java文件没有package,就默认给文件加上"无名"package;2,默认导
    2023-06-03

    java程序是如何运行的

    本篇文章为大家展示了java程序是如何运行的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue队列:有
    2023-06-14

    java程序是怎样运行的

    程序运行流程:1、先把Java代码编译成字节码,也就是把“.java”类型的文件编译成“.class”类型的文件。这个过程的大致执行流程:Java源代码 -> 词法分析器 -> 语法分析器 -> 语义分析器 -> 字节码生成器 ->最终生成字节码,其中任何一
    java程序是怎样运行的
    2016-04-20

    java程序的编译过程是什么

    Java程序的编译过程分为以下几个步骤:1. 编写源代码:首先需要编写Java程序的源代码,源代码是以.java文件的形式存在,可以使用任何文本编辑器来编写。2. 编译源代码:使用Java编译器将源代码编译成字节码,字节码是一种中间代码,它
    2023-09-28

    Java程序的开发与运行原理是什么

    这篇文章主要介绍“Java程序的开发与运行原理是什么”,在日常操作中,相信很多人在Java程序的开发与运行原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java程序的开发与运行原理是什么”的疑惑有所
    2023-06-16

    java的程序怎么运行

    运行一个Java程序的步骤:1、编辑源代码xxx.java (推荐学习:java课程)2、编译xxx.java文件生成字节码文件xxx.class3、JVM中的类加载器加载字节码文件4、JVM中的执行引擎找到入口方法main(),执行其中
    java的程序怎么运行
    2021-04-15

    Java新手从代码到运行的过程是什么

    本篇内容介绍了“Java新手从代码到运行的过程是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1:编写代码 首先把我们想要计算机做的事情
    2023-06-17

    C++的.cpp文件运行过程是什么

    本篇内容介绍了“C++的.cpp文件运行过程是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!.cpp文件运行全过程第一步先用编辑器编辑好
    2023-07-05

    sparkdemo.jar运行在yarn上的过程是什么

    sparkdemo.jar运行在yarn上的过程是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.将之前打包的jar包上传 [root@sht-sgmhadoopnn
    2023-06-03

    云服务器运行程序是什么类型的程序

    基于Linux的服务器运行程序主要用于开发应用程序和操作系统,这些应用程序和操作系统通常在云服务器上运行。这些运行程序的优点是具有良好的可移植性和可扩展性,可以轻松地适应不同的环境和操作系统。例如,可以在Linux上运行基于Web的应用程序,也可以在Windows上运行基于Android的应用程序。这种运行程序的缺点是
    云服务器运行程序是什么类型的程序
    2023-10-28

    ubuntu运行windows程序的方法是什么

    在Ubuntu上运行Windows程序有以下几种方法:1. 使用Wine:Wine是一个兼容层,可以在Linux系统上运行Windows程序。您可以通过在终端中运行以下命令来安装Wine:```sudo apt-get install wi
    2023-09-07

    ubuntu运行c程序的方法是什么

    在Ubuntu上运行C程序的方法有以下几种:使用终端编译和运行:打开终端,进入C程序所在的目录,使用gcc编译器编译程序,然后运行生成的可执行文件。例如,假设程序文件名为hello.c,可以在终端中输入以下命令:gcc -o hello
    2023-10-25

    intellij怎么运行java程序

    在IntelliJ中运行Java程序,可以按照以下步骤操作:1. 打开IntelliJ IDEA,并打开您的Java项目。2. 在项目结构中,找到您要运行的Java类。3. 确保您的Java类包含一个main方法,作为程序的入口点。4. 在
    2023-09-28

    editplus怎么运行java程序

    小编给大家分享一下editplus怎么运行java程序,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!运行方法:首先点击“工具”-“用户工具”-“工具组”-“确定”按钮;然后点击“添加工具”,在弹出的菜单中选择“应用程序”;
    2023-06-15

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录