jvm: 是 Java Virtual Machine(java 虚拟机)的缩写.
怎么去理解这个 jvm 呢? 我们可以把它理解成操作系统, 如果这个比喻不好理解, 你可以夸张的把他理解成 "虚拟计算机",java 程序就在这个 "虚拟计算机" 上运行.
java 的跨平台能力就是源自这个 "虚拟计算机"; 因为 jvm 封装了 java 程序与操作系统的交互
或者说 jvm 实现了 java 程序与计算机操作系统直接交互的能力, 而 java 程序又运行在虚拟机上. 而计算机的操作系统无非就那么几个,
只要虚拟机实现对操作系统交互, java 程序就能在这个操作系统上运行.
虚拟机长什么样?
虚拟机其实就是一个软件, 这个软件实现 java 程序和操作系统的交互.
jvm 位于 jdk 的 jre 目录中的 bin 目录下, 可以把 bin 目录理解成虚拟机, jvm.dll 是虚拟机入口, 而父目录中的. dll 则是 jvm.dll 辅助库.
jre: 是 Java Runtime Environment(java 运行环境).
虚拟机运行的是字节流; 字节流是字节码文件 (.class 文件) 转换而来的.
虚拟机本身是没有办法把 class 文件转换成字节流的, 就需要 lib 中的各种 jar 包或工具实现这个功能, 而把 class 文件转换成字节流, 并且在虚拟机里面运行局面就叫做 java 运行环境; jre=bin+lib;
jdk: 是 Java Development Kit(java 开发工具包).
上面的 jre 运行需要 class 文件, 那么 class 文件从何而来?
class 文件是通过编译而来的. 编译和调试主要用来给开发人员使用的.
jdk=jre + 开发工具包.
bin: 主要提供编译和 debugger.
db: 用 java 编写的轻量级的内存数据库, 名曰 derby 数据库
include:java 和 JVM 交互用的头文件;
lib: 常用类库, 我们常用的 String,List 等类就是在这里面
jre:java 运行环境
来源: http://www.bubuko.com/infodetail-3316797.html