SDK、JDK、JRE、JVM的区别

        想想从事开发也有些时间了,但是对于这几个基础的概念却依旧模糊,所以昨天自己查阅了些资料,总结了下,怕以后遗忘,就顺便写出来了!纯属自己的理解,希望不会误导给位!

       首先讲SDK,引用百度:SDK(Software Development Kit, 即软件开发工具包 )一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。简而言之SKD即软件的开发工具包,C#有C#的SDK、JAVA有JAVA的SDK!而JDK是sun公司开发的一种JAVA JDK,最早是叫Java Software Development Kit即JSDK,后来在JAVA1.2之后就改成Java Development Kit了,即现在的JDK。总结,SDK是软件开发工具的统称,而JDK只是众多JAVA SDK中的一种而已,他的前身叫JSDK。这样一理顺,就知道这两者啥关系了吧!大笑

     再讲JDK、JRE、JVM的关系吧!这里我要先讲下JVM跟JRE,JVM,引用百度:JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。简单点讲,我们可以把JVM理解为就是一个运行JAVA目标代码的工具而已,这个工具可以实现跨平台的功能!而JRE,引用百度:JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。这个不多说,直接总结:JRE就是JAVA的运行环境,而这个环境需要JAVA能运行的工具(JVM)和一些辅助的类,所以JRE就是JVM和JAVA类库组成的。

      重点讲下JDK跟JRE的关系,我在查阅资料的时候看到有些前辈在文章说:JDK包含了JRE!我觉得不是很准确,想了下,觉得原因应该是出在:JDK目录下包含了JRE。先解释下JDK,JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(这里我就不引用百度的了,因为我觉得百度讲的都有些不对)。我们回到开始的问题“JDK目录下包含了JRE”,我想通过我前面介绍JRE,各位应该知道JRE是整个JAVA的运行环境,而JRE肯定是要比JDK早出来的,所以这里的包含也就是相当于引用了JRE而已,换一种说法:JDK的包含JRE就跟我们的工程里面引用别人JAR包的道理是一样的。我们把工程打包出去部署,里面有很多JAR包,难道就说那些JAR包都是我们自己的吗?我们再来看下JDK的目录结构,除了JRE它还有一个bin跟lib,而这里才是JDK真正的核心、真正的意义所在!里面包括了javac.exe等一些java工具和一些类库,这些工具的作用就是把我们的.java文件里面的代码编译成JVM能够直接运行的目标代码而类库则是辅助我们编程的,而JDK里面的这些工具又都是用java编写出来的,所以要运行这些工具也就自然会需要一个JAVA运行环境,这就是为什么JDK需要在自己的目录下面再重新引用一套JRE的原因了。所以结论就出来了,JDK跟JRE不存在包含与被包含的关系,他们最多就是一个引用关系。各位,有没有注意到JDK定义里的“开发员”,JDKSun Microsystems针对Java开发员的产品。说简单点就是:JDK只是针对开发人员而设计的产品,跟JRE没有直接关系,它主要是用来辅助程序员开发,帮助程序员更简便、便捷的将java代码转换成能在JVM里执行的目标代码而已!总结:JDK跟JRE本身没有直接的关系,是因为我们程序员才使得他们有联系的!而前辈们讲的JDK包含JRE可以说成是JDK引用了JRE而已。

        纯属个人理解,有不恰当之处还望各位指出来!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值