java编译器什么好?java编译器工作原理是什么?

阳光 2020-12-23 21:33:36 java常见问答 5045

在编写Java程序时,大家肯定都会用到java编译器,好的java编译器可以帮助你更好的进行编程,那么java编译器哪个比较好呢?接下来,我们就来给大家讲解一下这方面的内容。

推荐开发用Eclipse或者Jbuilder,文本编辑器更多,推荐用Notepad++。

java编译器工作原理是什么?

1、java编译过程主要分为四步:

词法分析;

语法分析;

语义分析;

字节码生成。

2、词法分析:

词法分析是将java源代码一个字节一个字节的读出来,根据关键字,分辨出符合规范的Token流。也就是把一段代码分解成一个个单独的词。

根据这次Token流,编译器完成了理解java语言的第一步。例如:第一个关键字就是public,对应的Token类为:Thken.PUBLIC。同理class关键字对应Token.CLASS。把一句话:我要睡觉,分解为:我 要 睡觉。

3、语法分析:

语法分析器会读取Token流,组建成更加结构化的语法书。也就是将这些Token流中的单词组装成一句话,然后生成一颗语法树。

4、语义分析:

这个阶段就是编译器对代码的各种检查和优化,而实际操作的对象就是生成java简单语法树的节点。

编译器首先对代码进行一些检查,保证代码符合java语言规范,例如:

com.sun.tools.javac.comp.Check类会检查简单语法树中,变量类型是否正确,方法返回类型是否与接收的引用值匹配等等。

com.sun.tools.javac.Resolve类会检查变量、方法或类的访问是否合法,变量是否是静态变量,变量是否初始化。

同时还有对代码进行一些简单的优化。

5、字节码生成:

生成语法树之后,接下来javac会调用com.sun.tools.javac.jvm.Gen类遍历语法树,生成java字节码:

将java 案犯法中代码块转化为符合JVM语法的命令形式。JVM的操作都是基于栈的,所有操作都必须经过出栈和入栈类完成。

按照JVM的文件组织格式将字节码输出到以class为拓展名的文件中。

大家在选择编译器的时候,一定要选择当下用的比较多的,毕竟大家用的多,编译器也睡相对稳定很多哦。最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。

推荐阅读:

java如何接收json数据?json的类型有哪些?

java程序怎么写?写java程序要注意什么?

java免费教程有哪些?这些能够帮到你