jdk jre jvm区别详解
来源:互联网 发布:克林顿基金会 知乎 编辑:程序博客网 时间:2024/06/06 19:13
JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。
JRE:Java Runtime Enviromental(java运行时环境)。也就是我们说的JAVA平台,所有的Java程序都要在JRE下才能运行。包括JVM和JAVA核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。
如果安装了JDK,会发同你的电脑有两套JRE:例如安装了jdk1.7,安装目录C:\Program Files\Java,一套位于 C:\Program Files\Java\jre7, 另外一套位于 C:\Program Files\Java\jdk1.7.0_45\jre目录下,后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:\Program Files\Java 目录下的JRE。如果你只安装JRE,而不是JDK,那么只会在 C:\Program Files\Java 目录下安装唯一的一套JRE。JRE的地位就象一台PC机一样,我们写好的 Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。所以当你装完JDK后,如果分别在硬盘上的两个不同地方安装了两套JRE,那么你可以想象你的电脑有两台虚拟的Java PC机,都具有运行Java程序的功能。所以我们可以说,只要你的电脑安装了JRE,就可以正确运行Jav a应用程序。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的系统调用。
0 0
- jdk jre jvm区别详解
- jdk、jvm、jre区别和联系详解
- jvm jre jdk 区别
- JRE,JDK,JVM区别
- JDK,JRE,JVM区别
- jdk-jre-jvm区别
- JDK,JRE,JVM区别
- jdk, jre, jvm区别
- JDK&JRE&JVM区别
- jdk、jre、jvm区别
- jdk、jre、jvm区别
- jvm jdk jre区别
- JDK, JRE, JVM区别
- JDK,JRE,JVM区别
- jdk、jre、jvm详解
- JRE,JDK,JVM的区别
- JDK,JRE,JVM的区别?
- JVM,JRE,JDK的区别
- 黑马程序员--Java学习12--继承与上转型对象
- _USE_32BIT_TIME_T 注意此宏
- LeetCode: Combination Sum [038]
- android中常用的颜色
- ibatis 项目开发中遇到奇怪bug解决集
- jdk jre jvm区别详解
- 慎用AfxGetApp()->GetMainWnd()->m_hWnd
- Android Adapter
- 键盘弹起的高度利用键盘通知获得
- 第13周项目1-点圆的关系
- WinForm 快捷键设置
- 【容易打工网】好人总是输?
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
- ThinkPHP的快速操作