一、javac是什么
如何将java的语法规则适应到java虚拟机的语法规则中呢?这个任务就由javac编译器来完成。它的任务就是将java语言规范转化为java虚拟机语言规范,完成“翻译”的工作,”翻译“的工作是如何将java的源代码转化为class字节码的。
javac是一种编译器,能将一种语言规范转化成另外一种语言规范,通常编译器都是将便于人理解的语言规范转化成机器容易理解的语言规范,如c,c++或者汇编语言都是将源码直接编译成目标机器吗,这个目标机器码是CPU直接执行的指令集合,这些指令集合也就是底层的一种语言规范,这种语言规范机器能够直接识别,但是人不可能直接去写目标机器码,虽然这种机器码执行非常高效,但是对人不太友好,往往开发这个代码的成本远远高于省下的机器的执行成本,所以才有了编译器的出现,有了编译器才有可能出现了这么多的高级编程语言。
从某种意义上来说,有了编译器才有了程序语言的繁荣,因为编译器是人类和机器沟通的一个纽带,那么回过头来,javac的编译器也是将java这种对人非常友好的编程语言编译成对所有机器都非常友好的一种语言。注意这种语言不是针对某个机器的,甚至包括不同种类,不同平台的机器。如果消除不了不同种类,不同平台机器之间的差别,这个任