摘要
因为JDK、JRE和JVM之间的联系和区别一直很模糊,所以今天这篇文章旨在梳理它们之间的关系。灵机一动~
1.JDK (Java开发工具包)Java开发工具
JDK包含jre。除了jre,还包含了javac的一些工具类,将java源文件编译成类文件。java文件用来运行这个程序。此外,它还包含源自java的API等。
JDK常用包装:
Java.lang:这是系统的基本类。比如String,math,integer,system,thread提供常用函数。
Java.io这里是和使用的输入输出相关的类,比如文件操作。
Java.net:有与网络相关的类,如URL、URLVonnection等。
Java.util:这是系统辅助类,尤其是集合类concollection、list、map等。
Java.sql:这是数据操作、连接、statememt、resultset等的类。
JDK有以下三个版本:
J2SE,标准版,标准版;J2EE,企业教育,企业教育;J2ME,微教育,主要用于移动设备上的java应用。
总之,JDK是整个Java的核心,包括Java Runtime Envirnment,一堆JAVA工具(javac/java/jdb等。)和基于Java的类库(即Java API包含rt.jar)。
二、JRE (Java运行时环境)Java运行时环境
JRE包含JVM
JRE是保证java程序能运行的必要基础环境,也就是只保证java程序能运行,不能用于开发,jdk用于开发。如果要开发Java,必须包含一个可以运行的环境。因此,JDK包括JVM。而且所有的Java程序都要在JRE下运行。
JDK包括JVM和JAVA核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其他工具。
三。Java虚拟机
JRE是java运行时环境,Java运行在底层JVM上,即Java虚拟机,用来加载类文件。Java之所以有跨平台的功能,是因为JVM是根据不同的平台编写的。所以Java是跨平台的,但是JVM确实依赖于平台。
JVM是JRE的一部分。它是一台虚拟的计算机,是在实际的计算机上模拟各种计算机功能实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等。,以及相应的指令系统。JVM的主要工作是解释自己的指令集(即字节码)并映射到本地CPU的指令集或OS的系统调用。Java是一种跨平台语言,但实际上是一种不同的操作系统。使用不同的JVM映射规则,与操作系统无关,从而实现跨平台。它不关心JVM上层的Java源文件,只关心源文件生成的类文件。类的组成包括JVM指令集、符号表和一些补贴信息。
JDK、JRE和JVM之间的关系
实际上,在JDK安装目录下有一个名为jre的目录,其中包含两个文件夹,bin和lib。这里可以认为jvm在bin,jvm需要的类库在lib。
总之,使用JDK(调用java API)开发JAVA程序后,文本JAVA文件在JDK被编译器(javac)编译成JAVA字节码,这些JAVA字节码在JRE上运行,JVM解析这些字节码,映射到CPU指令集或OS系统调用。
后面会分享一些devops和DBA的内容,有兴趣的朋友可以下载!!
以上就是由优质生活领域创作者 深圳生活网小编 整理编辑的,如果觉得有帮助欢迎收藏转发~
本文地址:https://www.szbubu.com/2741045.html,转载请说明来源于:深圳生活网
声明:本站部分文章来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场。