0
点赞
收藏
分享

微信扫一扫

Java和Kotlin编译

罗子僧 2022-04-21 阅读 69
android

Kotlin基于Java虚拟机(JVM),通过Kotlin编译器生成的JVM字节码与Java编译的字节码基本相同,也因此与Java可以完全兼容,并且语法更加简洁

两者的编译过程大致:

1词法分析

2语法分析

3语义分析

4中间代码生成

5目标代码生成

区别在于Kotlin与Java相比重要的细节在编译后端(目标代码生成)环节

Kotlin编译器在目标代码生成环节做了很多类似于Java封装的事情,

比如自动生成Getter/Setter代码的生成、Companion转变成静态类、修改类属性为final不可继承(open修饰即可继承)等等工作。

Kotlin将我们本来在代码层做的一些封装工作转移到了编译后端阶段,使得语言更加简洁

Java程序从编译到执行

运行java程序的过程是先用javac编译,然后用java解释。而一经编译成功后,就可以直接用java.exe随处解释运行了。

  java的源文件即用java语言编写的以.java为后缀名的代码文件,类文件是经过javac命令编译过后的字节码文件(.class文件),类文件被jvm翻译为本机能识别的机器语言才能被执行!  

  Java源代码 -> 编译器(javac.exe) -> Java字节码(即虚拟指令) -> JVM -> 解释器(java.exe) -> 二进制机器码

源文件是给程序员看的,类文件是给JVM(java虚拟机)看的,机器语言是给计算机(即主要为CPU看的)。

举报

相关推荐

0 条评论