发布于2021-04-18 13:47 阅读(766) 评论(0) 点赞(8) 收藏(0)
Java虚拟机(Java Virtual Machine)
Java虚拟机(Java Virtual Machine)它是运行所有Java程序的虚拟计算机,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行.Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Java 程序运行时比较高效,而且,由于字节码并不专对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同的计算机上运行。
Java运行环境(Java Runtime Environment)
JRE是Java Runtime Environment(java运行环境),光有JVM还不能让class文件执行,因为在解释class的时候JVM需要调用解释所需要的类库lib,JRE录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre
Java开发工具包(Java Development Kit)
JDK是java development kit(Java开发工具包),程序员做Java开发时所需要的一些工具Javac.exe/jar.exe Java基础的类库/API
关系:
JDK包含JRE,而JRE包含JVM
Java编译过程
程序员编写好的Java源文件以.java结尾,这些源文件是我们程序员自己编写的,是给程序员看的,所以还要经过javac工具编译后,编译成让JVM能够识别的字节码.编译之后的文件变成了.class结尾的字节码文件,编译好的字节码.class的文件,还要主动调用java.exe程序,让JVM执行编译好的字码,最终我们才能看到执行之后的结果! 下图为执行过程:
Java编译执行过程
在执行字节码文件时,JVM类加载器首先加载字节码文件,然后通过解释器逐行解释执行,这种方式的执行速度会相对 比较慢。有些方法和代码块是经常需要被调用的,也就是所谓的热点代码.后面引进了 JIT 编译器,JIT 属于运行时编译。当 JIT 编译器完成第一次编译后,其会将字节码对应的机器码保存下来,下次可以直接使用。机器码的运行效率肯定是高于 Java 解释器的,这也解释了我们为什么经常会说 Java 是编译与解释共存的语言。
作者:gogogo
链接:http://www.javaheidong.com/blog/article/159840/7edb908109a8d1d80c05/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!