Java中实例对象存储在哪?
Java编译流程低级语言是计算机认识的语言、高级语言是程序员认识的语言。如何从高级语言转换成低级语言呢?这个过程其实就是编译。 不同的语言都有自己的编译器,Java语言中负责编译的编译器是一个命令:javac 通过javac命令将Java程序的源代码编译成Java字节码,即我们常说的.class文件。这也是我们所理解的编译. 但是.class并不是计算机能够识别的语言.要想让机器能够执行,需要把字节码再翻译成机器指令,这个过程是JVM来完成的.这个过程也叫编译.只是层次更深..
因此我们了解到,编译器可划分为前端(Front End)与后端(Back End)。 以把将.java文件编译成.class的编译过程称之为前端编译。把将.class文件翻译成机器指令的编译过程称之为后端编译。 前端编译(Front End) 前端编译主要指与源语言有关但与目标机无关的部分,包括词法分析、语法分析、语义分析与中间代码生成。 例如我们使用很多的IDE,如eclipse,idea等,都内置了前端编译器。主要功能就是把.java代码转换成`.class字节码 后端编译(Back End) 后端编译主要指与目标机有关的部分,包括代码优化和目标代码生成等。 在后端编译中,通常都经过前端编译的处理,已经加工成.class字节码文件了 JVM通过解释字节码将其逐条读入并翻译为对应机器指令,读一条翻译一条,势必是分产生效率问题因此引入了JIT(just in time) 什么是JIT (Just in time)当JVM发现某个方法或代码块运行特别频繁的时候,就会认为这是“热点代码”(Hot Spot Code)。JIT会把部分“热点代码”翻译成本地机器相关的机器码,并进行优化,然后缓存起来,以备下次使用 在HotSpot虚拟机中内置了两个JIT编译器分别是: (编辑:桂林站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


