前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >什么是Javac

什么是Javac

作者头像
MickyInvQ
发布2020-09-27 17:08:49
1.2K0
发布2020-09-27 17:08:49
举报
文章被收录于专栏:InvQ的专栏InvQ的专栏

Javac 编译器的任务就是讲java语言规范转化成Java虚拟机语言规范,完成 “翻译工作”

什么是Javac

Javac 是一种编译器,能将一种语言规范转化成另外一种语言规范。通常编译器都是将便于人理解的语言规范转化成机器容易理解的语言规范。如c,c++或者汇编语言都是讲远吗直接编译成目标机器码,这个目标机器码是CPU直接执行的指令集合。这些指令集合也就是底曾的一种语言规范,机器能够直接识别这种识别这种语言规范,但是人不可能直接去写目标机器码。虽然这种机器码执行起来非常搞笑,但是对人太不友好了, 开发这个代码的成本往往远高于剩下的机器的执行成本。

从某种意义上来说,有了编译器才有了程序语言的繁荣,因为片一起是人类和机器沟通的一个纽带。那么回过头来,javac的编译器也是将Java这种对人非常友好的编程语言编译成对所有机器都非常友好的语言。注意,这种语言不是针对某个机器的,甚至包括不同种类,不同平台的机器。如何系哦啊出不同种类,不同机器之间的差别,这个任务就由JVM来完成,而Javac的任务就是将Java源代码语言先转化成JVM能够识别的一种语言,然后由JVM将JVM语言再转化成当前这个机器能够识别的机器语言。所以这样看来,Java语言向开发者屏蔽了很多与木鳖机器相关的细节,使得Java语言的执行和平台无关,这也就成就了java语言的繁荣。

如下图所示,javac的任务就是将java源码编译成Java字节码,也就是JVM能够识别的二进制码。从表面上看就是.java文件转成.class文件,而实际上是将Java的源代码转化成了一连串二进制数字,这些二进制数字是有格式的,只有JVM能够正确识别它们到底表达了什么意思。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-04-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是Javac
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档