⑴ 请问java程序在编译和运行时有什么区别,系统分别都会做什么
Java程序的编译
使用命令: javac *.java
编译时,会将写的.java文件(高级语言),生成相版应的字节码文件.class文件(二进制代码)
Java程序的权执行
使用命令:java *
流程: 加载到 -- 连接 ---- 初始化 ...
运行时,首先会由将相应的.class文件,加载到内存中,并验证.class文件的有效性,将相应类的Class加载到内存中,并对类中的静态变量进行初始化操作,然后就由 主 类开始执行
具体的可以看一下 JVM 类加载过程,以及jVM的内存分配机制
⑵ 什么叫程序的编译
编译程序是将用高级程序设计语言编写的源代码转换成等效的计算机汇编语言或机器语言表示的目标程序的一种翻译工具。它以高级语言的源程序为输入,输出则是汇编语言或机器语言形式的目标代码。编译生成的目标程序通常还需在运行程序的支持下运行,进行初始数据的处理并计算出所需的最终结果。
编译程序的实现算法较为复杂。其主要挑战在于,源代码中的语句与目标语言的指令并非一一对应,而是可能存在一多对应的情况。此外,编译程序还需要处理递归调用、动态存储分配、多种数据类型以及语句间的紧密依赖关系。这些因素使得编译过程变得复杂。
尽管如此,编译程序因其能够生成高效运行的代码,且具有易读性和易移植性等特点,已被广泛应用于翻译规模较大、复杂性较高的高级语言源程序。许多现代编程语言如C、C++、Java等都是通过编译程序进行翻译的。
编译程序的实现过程包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等步骤。在词法分析阶段,编译器会将源代码分解为一个个基本的符号单元;在语法分析阶段,编译器会检查这些符号单元是否符合预定义的语法规则;语义分析阶段则关注程序的语义是否正确;中间代码生成阶段,编译器会生成一种中间语言的代码;代码优化阶段则是优化生成的中间代码以提高最终目标代码的效率;最后,目标代码生成阶段将优化后的中间代码转化为机器语言。
编译程序的复杂性使得其在软件开发中的应用变得更加广泛。它不仅可以用于翻译各种高级语言的源程序,还能在程序的维护和调试过程中发挥重要作用。此外,编译程序还在许多嵌入式系统和高性能计算领域中得到了广泛应用。
总的来说,编译程序是现代软件开发中不可或缺的重要工具。通过将高级语言的源程序转化为机器语言,编译程序能够确保程序的高效运行,并为开发者提供强大的支持。
⑶ java编译是什么意思
Java是一种面向对象的编程语言,因其灵活高效而备受开发者青睐。编写Java程序时,需要将源代码翻译成计算机可以理解的机器语言,这个过程叫编译。Java编译器将Java源代码翻译成字节码,使程序能够在Java虚拟机上运行。编译过程是程序开发的重要环节,可以较好地保证程序的正确性和性能。
Java编译器不仅将源代码翻译成字节码,还会进行语法检查、类型检查、编译优化等工作。编译优化是编译器的重要功能之一,旨在消除程序的无用计算、减少程序运行时的内存开销等,大大提高程序的运行效率。在编译阶段诊断和消除问题,可以避免出现在程序运行时的错误。
随着Java编程语言的发展,开发者可以使用多种编译器进行Java源代码的编译。经典的Java编译器有javac、 gcj等,同时,也有多个Java虚拟机平台,包括JVM、 Android DVM等。此外,还可以使用一些直接将Java源代码转化为本地机器代码的编译器,比如GraalVM等。总之,编译是Java开发中不可或缺的一部分,选择一款优秀的Java编译器,可以提高开发效率和程序性能。