一、Java基础
1.JDK和JRE有什么区别
JVM
在介绍JRE和JDK之前,我首先说一下JVM,在Java中,JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种计算设备的规范,它是一个虚构出来的计算机。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Java虚拟机主要分为五大模块:类装载器子系统、运行时数据区、执行引擎、本地方法接口和垃圾收集模块。
JRE
接下来我们介绍JRE。JRE其实就是Java运行环境,即Java Run Environment的缩写,是Sun公司所研发的,JRE可以让计算机系统运行Java应用程序。
它包括Java虚拟机(也就是上面所说的JVM)、Java核心类库和支持文件。它不包含开发工具(JDK)–编译器、调试器和其它工具。JRE需要辅助软件–Java Plug-in–以便在浏览器中运行applet。
JDK
最后,再说JDK,JDK全称Java Development ToolKit,是Java语言开发工具包。它是整个Java的核心,其中就包括了Java运行环境,一堆Java工具(javac / java / jdb等)和Java基础的类库(即Java API)。
JDK包含的基本组件包括:
javac – 编译器,将源程序转成字节码
jar – 打包工具,将相关的类文件打包成一个文件
javadoc – 文档生成器,从源码注释中提取文档
jdb – debugger,查错工具
java – 运行编译后的java程序(.class后缀的)
appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
Jconsole: Java进行系统调试和监控的工具
此图为JDK结构图,可供参考。