`
g21121
  • 浏览: 694650 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JDK、JRE、JVM

 
阅读更多

        学习Java之前我们要重点学习一下这个三个重要的名词:JDK、JRE、JVM。了解了这三者的区别与联系后才能更深入的学习Java的结构及组成。

 

        JDK:

        学习JDK之前我们先了解一下"SDK"的概念。

        SDK:Software Development Kit 的缩写,中文即“软件开发工具包”,广义上指辅助开发某一类软件的相关文档、范例和工具的集合。

        我们最常用的SDK类似于Android SDK,PHP SDK,Flex SDK,iOS SDK等。SDK并不是一个具有固定结构、格式、统一规范的开发工具(包),不同厂商或组织都有自己推出的SDK产品。

        SDK理解起来很简单,正如,我们未来一个项目而将一些以前用过的源码类库封装起来,形成一个统一的产品整体,在PMP中又称组织过程资产。这个源码产品包对于要用到它的项目而言就是一个SDK。又如,我们在开发Flex软件时,要用到Flex SDK,否则无法提供相应底层的支持和实现。简而言之SDK就是为程序开发人员在开发软件代码过程中提供统一支持的源码/非源码包。其实JDK就是一种SDK,我们可以称JDK为Java SDK,JDK 是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库,但我们这里指的JDK一般指我们的开发环境所依赖的“Java SDK开发环境组件”,即Java工具和Java基础类库。

 
        以下是各版本的名称及发布日期:
版本
名称
发行日期
JDK 1.1.4
Sparkler(宝石)
1997-09-12
JDK 1.1.5
Pumpkin(南瓜)
1997-12-13
JDK 1.1.6
Abigail(阿比盖尔–女子名)
1998-04-24
JDK 1.1.7
Brutus(布鲁图–古罗马政治家和将军)
1998-09-28
JDK 1.1.8
Chelsea(切尔西–城市名)
1999-04-08
J2SE 1.2
Playground(运动场)
1998-12-04
J2SE 1.2.1
none(无)
1999-03-30
J2SE 1.2.2
Cricket(蟋蟀)
1999-07-08
J2SE 1.3
Kestrel(美洲红隼)
2000-05-08
J2SE 1.3.1
Ladybird(瓢虫)
2001-05-17
J2SE 1.4.0
Merlin(灰背隼)
2002-02-13
J2SE 1.4.1
grasshopper(蚱蜢)
2002-09-16
J2SE 1.4.2
Mantis(螳螂)
2003-06-26
Java SE 5.0 (1.5.0)
Tiger(老虎)
2004-09-30
Java SE 6.0 (1.6.0)
Mustang(野马)
2006-04
Java SE 7.0 (1.7.0)
Dolphin(海豚)
2011-07-28
Java SE 8.0 (1.8.0)
lambda
2014-04-04

 

        JRE:

        JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。

        JRE包括两部分:Java Runtime Environment和Java Plug-in。JavaRuntimeEnvironment(JRE)是可以在其上运行、测试和传输应用程序的Java平台。它包括Java虚拟机、Java核心类库和支持文件。它不包含开发工具--编译器、调试器和其它工具。JRE需要辅助软件--Java Plug-in--以便在浏览器中运行applet。

        JRE理解起来就比较简单了,我们可以理解为JRE是Java程序的运行环境,它可以单独安装在系统或平台上,它的体积比较小,是JDK的“简化版”,JRE只提供运行环境没有开发环境,通过下图我们可以直观的了解到两者的区别:



        其实我们通过上图很明显的发现,JDK与JRE结构上最大的区别就是JDK多了src,jre,include这三个文件夹,那么JDK与JRE又有什么本质的区别呢?

        JDK多了src.zip包不难理解,JDK是面向程序员的,而且Java还是开源,提供源码是可以让程序员更好的理解Java基础类的结构及思想,以便广大程序员更好的学习Java,开源是一个非常明智的做法,这里不得不赞一下Sun公司这个伟大的壮举。

        include文件夹,我们发现里面有很多“.h”结尾的文件,“.h“是用C++/C语言编写的头文件的扩展名。支持Java本地接口和Java虚拟机调试程序接口的本地代码编程,也就是可以调用C程序。这方面我接触的也不是很多,希望有经验丰富的朋友补充。

        细心的你肯定还会发现,bin目录下两者的文件内容其实也是不同的。JDK下bin目录里全部都是exe文件(以windows安装为例),而JRE下bin目录里就不一样了,少了很多exe应用程序,多了很多应用程序扩展dll文件。JRE下少了例如javac,jar,javadoc等一些常用的编译程序。也就是说JRE不包含我们开发常用的一些编译器,调试器等。

 

        JVM:

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


 

        我们通过图片就可以知道JDK>JRE>JVM。
        JDK 包含了诸如javac、jar、javadoc等开发人员用到的工具。 

  • 大小: 58.4 KB
  • 大小: 179.9 KB
  • 大小: 36.4 KB
2
4
分享到:
评论

相关推荐

    Java零基础 - JDK JRE JVM三者关系.md

    ### Java零基础-JDK JRE JVM三者关系详解 #### 一、引言 在Java编程的世界里,JDK(Java Development Kit)、JRE(Java Runtime Environment)和JVM(Java Virtual Machine)这三个核心概念是不可或缺的基础知识。...

    jdk、jre、jvm的区别

    ### JDK、JRE与JVM的区别详解 #### 一、引言 在深入探讨JDK、JRE与JVM之间的区别之前,我们首先需要明确这三个概念的基本定义及其各自的作用。对于初学者而言,理解这些核心组件是学习Java编程的基础。 #### 二、...

    一张图看懂JVM、JRE、JDK

    一张图看懂JVM、JRE、JDK

    详解Java中的JDK、JRE、JVM

    Java开发中的JDK、JRE和JVM是三个至关重要的概念,它们构成了Java应用程序的运行基础。理解这三个术语以及它们之间的关系是每个Java开发者必备的知识。 JDK(Java Development Kit)是Java开发工具包,它是Java开发...

    Java中JDKJRE和JVM解析.doc

    ### Java中的JDK、JRE与JVM解析 #### 一、引言 在Java编程领域,JDK、JRE和JVM这三个概念是至关重要的基础知识点。虽然它们经常被提及,但很多人仍然对它们之间的关系和各自的功能感到困惑。这篇文章将深入探讨这...

    JDK JRE与JVM1

    Java 技术体系的核心组成部分包括 JDK (Java Development Kit),JRE (Java Runtime Environment) 和 JVM (Java Virtual Machine)。理解这三个概念对于Java开发者至关重要。 首先,JDK是Java开发工具包,它是Java...

    JDK、JRE、JVM是什么?

    JDK(java Development Kit):java 的开发和运行环境,包括java 的开发工具和 jre,在程序员的电脑上当然要安装JDK; JRE(Java Runtime Environment):它是Java运行环境,包括,java 运行的所需的类库+JVM(java ...

    详解JDK,JRE,JVM.md

    详解JDK,JRE,JVM.md

    我们必须明白JDK,JRE和JVM之间的差异.mp4

    我们必须明白JDK,JRE和JVM之间的差异.mp4

    jdk与jre的区别

    JDK 与 JRE 的区别 JDK(Java Development Kit)和 JRE(Java Runtime Environment)是 Java 语言的两个核心组件,它们之间存在着一定的关系和区别。下面我们将详细介绍 JDK 和 JRE 的概念、区别和关系。 JDK JDK...

    AIX JDK1.8 JRE1.8 32位

    标题中的"AIX JDK1.8 JRE1.8 32位"指的是IBM的Java开发工具包(JDK)和Java运行环境(JRE)的32位版本,这两个组件都是针对AIX操作系统设计的。AIX,全称Advanced Interactive eXecutive,是IBM推出的一种基于UNIX的...

    大数据必学Java基础(九):JDK,JRE,JVM的区别

    本文主要讲解JDK、JRE和JVM之间的区别。 一、JDK、JRE、JVM的关系 1. JDK(Java Development Kit):Java开发工具包,是Java开发人员必备的软件,包含了编译器(javac)、JRE、调试器、文档生成工具、打包工具等。...

    java环境中的JDK、JVM、JRE详细介绍

    Java开发工具包(JDK)是Java编程的核心组件,提供了编写、编译和运行Java程序所需的一切工具。...理解JDK、JVM和JRE之间的关系对于Java开发者来说至关重要,因为它们构成了Java开发和运行的基础框架。

    JDK,JRE,JVM区别与联系.pdf

    Java开发中的JDK、JRE和JVM是三个至关重要的概念,它们构成了Java技术的基础框架。下面将详细阐述这三个术语的区别与联系。 首先,JDK(Java Development Kit)是Java开发工具包,它是整个Java开发的核心。JDK包含...

    【Java面试题】JDK、JRE与JVM的区别

    【Java面试题】JDK、JRE与JVM的区别

    java jdk jre8

    Java JDK与JRE是Java开发和运行环境中的两个核心组件,它们在软件开发和应用程序执行中扮演着至关重要的角色。本文将深入探讨这两个组件的概念、功能以及它们之间的关系。 Java Development Kit (JDK) 是Oracle公司...

Global site tag (gtag.js) - Google Analytics