简述java程序的编辑编译和运行过程

author author     2023-03-14     572

关键词:

JAVA考试简答题,速度

第一步(编译): 创建完源文件之后,程序会先被编译为.class文件。Java编译一个类时,如果这个类所依赖的类还没有被编译,编译器就会先编译这个被依赖的类,然后引用,否则直接引用,这个有点象make。

如果java编译器在指定目录下找不到该类所其依赖的类的.class文件或者.java源文件的话,编译器话报“cant find symbol”的错误。

第二步(运行):java类运行的过程大概可分为两个过程:1、类的加载 2、类的执行。需要说明的是:JVM主要在程序第一次主动使用类的时候,才会去加载该类。也就是说,JVM并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。

特别说明:java类中所有public和protected的实例方法都采用动态绑定机制,所有私有方法、静态方法、构造器及初始化方法<clinit>都是采用静态绑定机制。而使用动态绑定机制的时候会用到方法表,静态绑定时并不会用到。

扩展资料:

Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程。

Java代码编译:是由Java源码编译器来完成;

Java字节码的执行:是由JVM执行引擎来完成

Java程序从源文件创建到程序运行要经过两大步骤:

1、源文件由编译器编译成字节码(ByteCode)

2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言( "semi-interpreted" language)。

参考技术A 编译就是把java源文件翻译成字节码,运行就是java虚拟机通过指向引擎执行字节码。
其中的过程很复杂 不知道说的对不本回答被提问者采纳
参考技术B 用文档编辑成的是.java文件,他不是java虚拟机能解释的语言,需要编译器把它翻译成.class文件,然后java虚拟机才能在运行时将它解释为计算机所认识的010101010这种指令,一个完整的java程序是由编译器+运行时环境搭建而成的 参考技术C Java应用程序的开发周期包括编译、下载、解释和执行几个部分。Java编译程序将 Java源程序翻译为JVM可执行代码--字节码。Java将符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,然后再通过查 表来确定一个方法所在的地址。这样就有效的保证了Java的可移植性和安全性。

运行JVM字节码的工作是由解释器( java命令 )来完成的。解释执行过程分三部进行:代码的装入、代码的校验和代码的执行。装入代码的工作由"类装载器"(class loader)完成。类装载器负责装入运行一个程序需要的所有代码,这也包括程序代码中的类所继承的类和被其调用的类。当类装载器装入一个类时,该类被放 在自己的名字空间中。除了通过符号引用自己名字空间以外的类,类之间没有其他办法可以影响其他类。在本台计算机上的所有类都在同一地址空间内,而所有从外 部引进的类,都有一个自己独立的名字空间。这使得本地类通过共享相同的名字空间获得较高的运行效率,同时又保证它们与从外部引进的类不会相互影响。当装入 了运行程序需要的所有类后,解释器便可确定整个可执行程序的内存布局。解释器为符号引用同特定的地址空间建立对应关系及查询表。通过在这一阶段确定代码的 内存布局,Java很好地解决了由超类改变而使子类崩溃的问题,同时也防止了代码对地址的非法访问。

java编译程序和运行过程详解

...t;语义分析和中间代码生成-->优化-->目标代码生成Java程序从源文件创建到程序运行要经过两大步骤:1、Java文件会由编译器编译成class文件(字节码文件),会经过编译原理简单过程的前三步;2、字节码由java虚拟机解释运行... 查看详情

运行c程序的过程和简单的c程序结构

运行c程序的过程编译编译器可以将源代码转换成机器语言,在编译过程中,会找出错误并报告。这个阶段的输入是在编辑期间产生的文件,常称为源文件。编译器能找出程序中很多无效的和无法识别的错误,包括结构错误,例... 查看详情

简述将源程序编译成可执行程序的过程

一个源程序到一个可执行程序的过程:预编译、编译、汇编、链接。其中,编译是主要部分,其中又分为六个部分:词法分析、语法分析、语义分析、中间代码生成、目标代码生成和优化。预编译:主要处理源代码文件中的以“... 查看详情

利用文本编辑器输入hello.java,并在jdk环境下编译和运行。请将程序编译运行的结果

  查看详情

201753272018-2019-2《java程序设计》第三周学习总结

201753272018-2019-2《Java程序设计》第3周学习总结教材学习内容第四章类与对象类变量和实例变量、import语句对象的创建过程,对象引用与实体的关系,访问权限的理解this关键字:this可以出现在实例方法和构造方法中,但不可以出... 查看详情

简述jdkjrejve联系与区别(代码片段)

JDK(JavaDevelopmentKit)  含义:Java开发工具包JDK(JavaDevelopmentKit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(JavaRuntimeEnvirnment),一些Java... 查看详情

简述java虚拟机的工作原理

简述java虚拟机的工作原理java虚拟机包含类加载器、字节码校验器和JIT实时编辑器。类加载器用来取得从网络获取的或存于本地机器上的类文件字节码。下一步由字节码校验器检查这些类文件是否有正确的格式,以确认在运行时... 查看详情

.class和.java区别

二者区别在于:java文件是源程序,class文件是编译后的代码。关于源程序未经编译的,按照一定的程序设计语言规范书写的,人类可读的文本文件。源程序可以是以书籍或磁带或其他载体的形式出现,但最为常用的格式是文本文... 查看详情

java如何运行,从哪运行?

...础的类库。JDK包含的基本组件包括:javac–编译器,将源程序转成字节码jar–打包工具,将相关的类文件打包成一个文件javadoc–文档生成器,从源码注释中提取文档jdb–debugger,查错工具java–运行编译后的java程序(.class后缀的... 查看详情

java运行机制详解|jvm规格描述

(一) Java应用程序的开发  Java应用程序的开发周期包括编译、下载、解释和执行几个部分。Java编译程序将Java源程序翻译为JVM可执行代码--字节码。这一编译过程同C/C++的编译有些不同。当C编译器编译生成一个对象的代码... 查看详情

简述jsp运行原理

参考技术ASP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其... 查看详情

java编译运行过程

    Java程序从源文件创建到程序运行要经过两大步骤:1、源文件由编译器编译成字节码(ByteCode) 2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言(&... 查看详情

python炒鸡面试题

...发环境用的什么系统?线上用的centos6,开发环境用的Ubuntu4,简述python和java,php,c,c#,c++的对比python简单易懂,代码工整美观,简单优雅,可读性强,有成熟的框架,丰富的第三方模块,开发效率非常高,最最关键的是超火,啥都可以做5,简述... 查看详情

4.用文本编辑器输入课堂上练习的hello.java,并在jdk环境下编译和运行。请将程序编译运行的结果截图,填入下框中。

一开始报错是因为在文本框了的;用的是中文下的,应该用英文下的; 查看详情

java--代码编译和执行的整个过程

...法来实现的抽象的计算机,可以在上面执行Java的字节码程序。Java编译器只需面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译器,编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行... 查看详情

如何在 C、java 和 C++ 中的任何位置编译和运行任何文件?

...809:45:06【问题描述】:我正在创建一种编辑器类型的应用程序,我想在其中编译和运行(当然也可以创建、编辑、打开)C、C++和Java文件;我正在用Java创建它。现在为了编译和运行,我正在使用文件的整个路径并通过此完整路径 查看详情

2-3(代码片段)

...是一门基于虚拟机的语言python是一门先编译后解释的语言简述python的运行过程当python运行程序时,编译的结果则是保存在位于内存中的PyCodeObject中,当python程序运行结束时,python解释器则将PyCoderObject写回到pyc文件中。当python程... 查看详情

sublimetext设置编译运行java

...试用),也是HTML和散文先进的文本编辑器。SublimeText是由程序员JonSkinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim。SublimeText具有漂亮的用户界面和强大的功能,例如代码缩略图,Python 查看详情