一、Java类型语言
因为Java语言都是要通过编译之后才能够进行解释的,不通过编译的Java语言进行不了解释。
编译之后的Java语言要在JVM下进行解释。
Java完整的编译解释顺序:
生成.java文件
👇
生成.class字节码文件
👇
程序跑完(JVM中执行clss文件过程)
编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。
解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!
区别:
编译型语言,执行速度快、效率高;依靠编译器、跨平台性差些。
解释型语言,执行速度慢、效率低;依靠解释器、跨平台性好。
Java既是编译型语言又是解释型语言,因为Java的整个过程都是需要的,并不是单独一部分就能够顺利完成,但是字节码文件主要是通过解释来进行跑程序的,所以严格来说是偏解释型语言的。
Java文件的解码流程:
总结:Java主要是偏解释性的语言,主要是在JVM内进行对字节码文件解释的。JVM中通过classloader(类加载器)对.class文件进行加载,而代码的运行需要Java类库的支持。通过字节码解释器和JIT即时编辑器去执行引擎从而输出到OS硬件。
二、JDK
JDK是Java开发工具包 (Java Development Kit ) 的缩写。从字面意思翻译过来就是java开发的工具。它是一种用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境。
三、JRE
JRE为Java Runtime Environment的简称,Java Runtime Environment(包括Java Plug-in)是Sun的产品,包括两部分:Java Runtime Environment和Java Plug-in。JavaRuntimeEnvironment(JRE)是可以在其上运行、测试和传输应用程序的Java平台。它包括Java虚拟机(jvm)、Java核心类库和支持文件。它不包含开发工具(JDK)–编译器、调试器和其它工具。JRE需要辅助软件–Java Plug-in–以便在浏览器中运行applet。
四、JVM
Java虚拟机
“JVM是Java Virtual Machine(Java虚拟机)的缩写。它是java运行环境的一部分,是一个虚构出来的计算机,它是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM是用来解析和运行Java程序的。”
JVM 其实就是java的虚拟机 HotSpot
运行机制: