Skip to content

Java语言编译运行 #45

@HerryLo

Description

@HerryLo

Java语言编译运行

java代码需要编译字节码,再通过虚拟机JVM编译成机器码才可运行:

编译时主要负责语法和类型检查,而运行时则负责实例化对象、执行方法等任务。

编译

javac HelloWorld.java

编译阶段主要完成以下几个工作:

  • 词法分析:对代码进行词法分析产生字符流;
  • 语法分析:编译器会对代码进行语法分析,检查代码是否符合语法规则;
  • 语义分析:编译器会进一步检查代码语义是否正确。比如,变量是否已经声明、类型是否匹配等;
  • 生成字节码:编译器会将代码转化为字节码,字节码包含了 Java 虚拟机指令集中的指令、常量池和其他相关信息;

运行

java HelloWorld

在运行时,该阶段主要完成了以下几个工作:

  • 类加载器:字节码文件经过类加载器到JVM内存;
  • 类解释器:字节码经过字节码解释器解释成系统可识别的指令码;
  • 执行阶段:系统再向硬件设备发送指令码执行操作。

参考

Java编译原理(javac)

如何编译和运行Java文件?

JVM基础(一)JVM的工作流程

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions