JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

  我们常常用JDK来代指Java API,Java API是Java的应用程序接口,其实就是前辈们写好的一些java Class,包括一些重要的语言结构以及基本图形,网络和文件I/O等等 ,我们在自己的程序中,调用前辈们写好的这些Class,来作为我们自己开发的一个基础。当然,现在已经有越来越多的性能更好或者功能更强大的第三方类库供我们使用。      

  JRE:Java  Runtime  Enviromental(java运行时环境)。也就是我们说的JAVA平台,所有的Java程序都要在JRE下才能运行。包括JVM和JAVA核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。

JVM:Java Virtual Mechinal(JAVA虚拟机)。JVM是JRE的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 的主要工作是解释自己的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的系统调用。Java语言是跨平台运行的,其实就是不同的操作系统,使用不同的JVM映射规则,让其与操作系统无关,完成了跨平台性。JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file)。类文件的组成包括 JVM 指令集,符号表以及一些补助信息。

  下图很好的表面了JDK,JRE,JVM三者间的关系:

  

  我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。

最新文章

  1. 【BZOJ-3643】Phi的反函数 数论 + 搜索
  2. 用springMVC构建restful程序,接收以及返回json数据格式
  3. LoadRunner参数化取值及连接数据库操作步骤
  4. Java面向对象编程 第二章 第一个Java应用
  5. iOS开发小技巧--判断控件是否显示在当前窗口
  6. eclipse安装spring插件
  7. mysql存储过程性能监控和分析
  8. 验证xml是否有效于.dtd文件
  9. 数据接口管理工具 thx RAP
  10. javascript设计模式-观察者模式
  11. 【HTML/XML 8】XSL,可扩展样式表语言
  12. 深入理解memcached
  13. Java网络编程(客户端和服务端原理)
  14. hdu 4403 枚举
  15. [转]Vim 复制粘帖格式错乱问题的解决办法
  16. sqlserver查询某一字段重复超5次的所有记录
  17. solr+jieba结巴分词
  18. 最新的windows xp sp3序列号 xp序列号
  19. 链接SQL Server服务器
  20. spring bean 的生命周期

热门文章

  1. Java 大数类BigInteger和BigDecimal的基本函数
  2. 哈密顿绕行世界问题(dfs+记录路径)
  3. JDBC连接数据库(查询)的步骤
  4. 【C#附源码】数据库文档生成工具支持(Excel+Htm)
  5. radiobutton独特属性
  6. LAMP LNMP 和 LNMPA
  7. 一.初识java
  8. SQLite 链接大全
  9. 为什么alertView弹出后button会消失的问题
  10. DALI解码模块