JVM
英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统上的 API 完成动作。
JRE
英文名称(Java Runtime Environment),我们叫它:Java 运行时环境。
它主要包含两个部分,jvm 的标准实现和 Java 的一些基本类库。它相对于 jvm 来说,多出来的是一部分的 Java 类库.
JDK
英文名称(Java Development Kit),Java 开发工具包。jdk 是整个 Java 开发的核心,它集成了 jre 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。显然,这三者的关系是:一层层的嵌套关系。JDK>JRE>JVM。
其他
ClassLoader从上到下bootstrap,extension,system,custom,当需要加载类时,从下往上询问,父加载器可以加载则父加载器加载,不能则由子加载器加载(双亲委派机制)
JVM无法直接读取java代码,需要 javac 先编译后解码再读取 方可成功,即一次编译到处运行
包含关系:JDK(java开发工具包)>JRE(java运行时环境)>JVM(java虚拟机), 其中, JDK = JRE + Java编译工具,JRE = JVM + Java核心类库
框架
框架是完成了一定功能的半成品软件。
框架是工具,我们使用框架来开发。
框架完成了一些基础的、有难度的、通用的功能,这就避免我们在应用开发的时候完全从头开始,而是在框架已有的功能之上继续开发,也就是说会复用框架的功能,从而加快应用的开发进度。
架构是一种设计。软件体系结构通常被称为架构,架构通常描述了构件与构件之间的关系,构件与环境之间的关系。
开源
开源即开放源代码(Open source code)也称为源代码公开,指的是一种软件发布模式。开源软件作者将实现软件的源代码公布,用户可以任意获取。开源软件遵守一定的开源协议(如MIT、GPL)。
开源并非免费