首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

JDK,JRE,JVM区别与联系

JVMJDKEclipseJava企业应用 很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的。 今天特写此文,来整理下三者的关系。 JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。 最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了属于自己的JDK,例如国外IBM公司开发了属于自己的JDK,国 内淘宝也开发了属于自己的JDK,各个组织开发自己的JDK都是为了在某些方面得到一些提高,以适应自己的需求,比如IBM的JDK据说运行效率就比 SUN的JDK高的多。但不管怎么说,我们还是需要先把基础的Sun JDK掌握好。 JDK有以下三种版本: J2SE,standard edition,标准版,是我们通常用的一个版本J2EE,enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序J2ME,micro edtion,主要用于移动设备、嵌入式设备上的java应用程序 我们常常用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的系统调用。

01

jdk和jre有什么区别_jdk与jre的关系

JDK与JRE 在安装的过程中各位可能注意到了JRE这个名词,下面我们来聊聊JDK和JRE的关系和区别。  JDK:它是Java开发运行环境,在程序员的电脑上当然要安装JDK;  JRE:Java Runtime Environment它是Java运行环境,如果你不需要开发只需要运行Java程序,那么你可以安装JRE。例如程序员开发出的程序最终卖给了用户,用户不用开发,只需要运行程序,所以用户在电脑上安装JRE即可。  JDK包含了JRE。  JRE中包含虚拟机JVM JRE: Java Runtime Environment JDK:Java Development Kit JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。 JDK顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。 如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。 JRE根据不同操作系统(如:windows,linux等)和不同JRE提供商(IBM,ORACLE等)有很多版本,最常用的是Oracle公司收购SUN公司的JRE版本。 简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。 JDK就是Java Development Kit JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。 如果安装了JDK,会发同你的电脑有两套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\j2re1.4.1_01 目录下,俺发现事jdk/bin目录里比jre7/bin多了一套Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:\Program Files\Jav a 目录下的JRE。如果你只安装JRE,而不是JDK,那么只会在 C:\Program Files\Java 目录下安装唯一的一套JRE。

02

什么是Java虚拟机以及JDK,JRE,JVM的区别和联系

The Java Virtual Machine (JVM) is an abstract computing machine. The JVM is a program that looks like a machine to the programs written to execute in it. This way, Java programs are written to the same set of interfaces and libraries. Each JVM implementation for a specific operating system, translates the Java programming instructions into instructions and commands that run on the local operating system. This way, Java programs achieve platform independence 翻译一下: Java虚拟机(JVM)是一种抽象计算机器。JVM是一个程序,它看起来像是一台机器,用于编写并在其中执行的程序。通过这种方式,Java程序被写入同一组接口和库中。针对特定操作系统的每个JVM实现都将Java编程指令转换为在本地操作系统上运行的指令和命令。这样,Java程序就实现了平台独立性。

03

【Java】01 初识 Java

Java 语言的诞生具有一定的戏剧性,它并不是经过精心策划、制作,最后产生的划时代产品,从某个角度来看,Java 语言的诞生完全是一种误会。    1990 年年末,Sun 公司预料嵌入式系统将在未来家用电器领域大显身手。于是 Sun 公司成立了一个由 James Gosling 领导的 “Green计划”,准备为下一代智能家电(如电视机、微波炉、电话)编写一个通用控制系统。    该团队最初考虑使用 C++ 语言,但是很多成员包括 Sun 的首席科学家 Bill Joy,发现 C++ 和可用的 APl 在某些方面存在很大问题。而且工作小组使用的是嵌入式平台,可用的系统资源极其有限。并且很多成员都发现 C++ 太复杂,以致很多开发者经常错误使用。而且 C++ 缺少垃圾回收系统、可移植性、分布式和多线程等功能。    根据可用的资金,Bill Joy 决定开发一种新语言,他提议在 C++ 的基础上,开发一种面向对象的环境。于是,Gosling 试图通过修改和扩展 C++ 的功能来满足这个要求,但是后来他放弃了。他决定创造一种全新的语言:Oak。    到了1992 年的夏天,Green 计划已经完成了新平台的部分功能,包括 Green 操作系统、Oak 的程序设计语言、类库等。同年11月,Green 计划被转化成 “FirstPerson有限公司”,一个 Sun 公司的全资子公司。    FirstPerson 团队致力于创建一种高度互动的设备。当时代华纳公司发布了一个关于电视机顶盒的征求提议书时,FirstPerson 改变了他们的目标,作为对征求提议书的响应,提出了一个机顶盒平台的提议。    但有线电视业界觉得 FirstPerson 的平台给予用户过多的控制权,因此 FirstPerson 的投标败给了 SGl,同时,与 3DO 公司的另外一笔关于机顶盒的交易也没有成功。此时,可怜的 Green 项目几乎接近天折,甚至 Green 项目组的一半成员也被调到了其他项目组。正如中国古代的寓言所言:塞翁失马,焉知非福?如果 Green 项目在机顶盒平台投标成功,也许就不会诞生 Java 这门伟大的语言了。    1994 年夏天,互联网和浏览器的出现不仅给广大互联网的用户带来了福音,也给 Oak 语言带来了新的生机。Gosling 立即意识到,这是一个机会,于是对 Oak 进行了小规模的改造,到了1994 年秋,小组中的 Naughton 和 Jonathan Payne 完成了第一个 Java 语言的网页浏览器:webRunner。Sun 公司实验室主任 Bert Sutherland 和技术总监 Eric Schmidt 观看了该浏览器的演示,对该浏览器的效果给予了高度评价。当时 Oak 这个商标已被别人注册,于是只得将 Oak 更名为 Java。    Sun 公司在1995 年年初发布了 Java 语言,Sun 公司直接把 Java 放到互联网上,免费给大家使用。甚至连源代码也不保密,也放在互联网上向所有人公开。    几个月后,让所有人都大吃一惊的事情发生了:Java 成了互联网上最热门的宝贝。竟然有10万多人次访问了 Sun 公司的网页,下载了 Java 语言。然后,互联网上立即就有数不清的 Java 小程序(也就是 Applet ),演示着各种小动画、小游戏等。    Java 语言终于扬眉吐气了,成为了一种广为人知的编程语言。    在 Java 语言出现之前,互联网的网页实质上就像是一张纸,不会有任何动态的内容。有了 Java 语言之后,浏览器的功能被扩大了,Java 程序可以直接在浏览器里运行,可以直接与远程服务器交互:用 Java 语言编程,可以在互联网上像传送电子邮件一样方便地传送程序文件!    1995 年,Sun 虽然推出了 Java,但这只是一种语言,如果想开发复杂的应用程序,必须要有一个强大的开发类库。因此,Sun 在 1996 年年初发布了 JDK1.0。这个版本包括两部分:运行环境(即JRE)和开发环境(即JDK),运行环境包括核心 API、集成 API、用户界面 API、发布技术、Java 虚拟机(JVM)5个部分:开发环境包括编译 Java 程序的编译器(即 javac 命令)。接着,Sun 在1997年2月18日发布了 JDK1.1。JDK1.1 增加了 JIT(即时编译)编译器。JIT 和传统的编译器不同,传统的编译器是编译一条,运行完后将其扔掉;而 JIT 会将经常用到的指令保存在内存中,当下次调用时就不需要重新编译了,通过这种方式让 JDK 在效率上有了较大提升。    但一直以来,Java 主要的应用就是网页上的 Applet 以及一些移动设备。到了1996 年年底,Flash 面世了,这是一种更加简单的动画设计软件:使用 Flash 几

03
领券