您的位置:首页 > 编程语言 > Java开发

java是编译型语言还是解释型语言?

2017-03-06 11:03 211 查看
有些答案对JAVA的理解还停留在上古时代或者教科书里。

其实,现在用编译型、解释型来分类编程语言已经有点力不从心了。

JAVA的第一道工序是javac编译,当然目标文件是BYTECODE。后续可能有三种处理方式:

1. 运行时,BYTECODE由JVM逐条解释执行,

2. 运行时,部分代码可能由JIT翻译为目标机器指令(以method为翻译单位,还会保存起来,第二次执行就不用翻译了)直接执行;

3. RTSJ。继JAVAC之后执行AOT二次编译,生成静态的目标平台代码(典型的就是IBM WEBSHPERE REAL TIME)。

有的时候,可能是以上三种方式同时在使用。至少,1和2是同时使用的,3需要程序员手工指定。

所以讨论语言得更细化一点了,强类型的、弱类型的,静态的、动态的,GC-based的、手工管理内存的,有没有VM...

作者:觉浅

链接:https://www.zhihu.com/question/19608553/answer/27896401

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: