JAVA语言的跨平台性和JDK,JRE与JVM
Java虚拟机--JVM
~JVM:java虚拟机简称JVM是运行所有java程序的假想计算机,是java程序的运行环境,是java最具有吸引力的特性之一,我们编写的java代码,都运行在JVM之上
~跨平台:任何软件的运行都必须要运行在操作系统之上,而我们用java编写的软件可以运行在任何操作系统上,这个特性成为java语言的跨平台特性,该特性是由JVM实现的,我们编写的程序运行在JVM之上,而JVM运行在操作系统上
java的虚拟机本身不具备跨平台功能的,每个操作系统下都有=不同版本的虚拟机
JRE是啥
先说JRE,在我们装JDK的时候,经常会发现即安装了JDK也安装了JRE,也不知道他们有什么区别。
JRE(Java Runtime Environment)是JAVA运行时环境,它是运行已编译Java程序所需的所有内容的集合,包括Java虚拟机(JVM),Java核心类库和一些基础的构件。
有些人认为如果是运行,那JVM不就够了吗,其实还不够,因为在解释class文件时,JVM需要调用解释所需要的类库 lib。jre的安装目录下,里面有两个文件夹bin和lib,笼统的分析下,这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。
jre里有运行.class的java.exe文件,至于虚拟机则是jre安装目录/bin/server目录下的jvm.dll文件
但是,它不能用于创建新程序。它只包括了运行的能力,不具备开发的能力,它无法将java文件编译成.class字节码文件,但是它可以直接跑.class字节码文件,你在其他电脑上编译好java程序,拿到仅有JRE环境的电脑也可以正常使用
JDK是啥
JDK(Java Development Kit)是Java的开发工具包,它不仅提供了Java程序运行所需的JRE,还提供了一系列的编译,运行等工具,如javac,java,javaw等。通过这里,我们可以明白三个J的包括关系了:JDK》JRE》JVM,所以我们在安装JDK时,通常不需要考虑JRE,JVM之类的,只要你安装好了JDK,其他两个就都有了。
简单列举一下JDK包括的一些开发工具:
javac – 编译器,将源程序转成字节码。
jar – 打包工具,将相关的类文件打包成一个文件。
javadoc – 文档生成器,从源码注释中提取文档。
jdb – debugger,查错工具。
java – 运行编译后的java程序(.class后缀的)。
appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
Jconsole: Java进行系统调试和监控的工具。
有时候还会有人提到SDK,SDK(Software Development Kit )是指软件开发包,它不仅限于JAVA,很多软件也有自己的SDK,更像一个统称,是专门给第三方开发者提供的软件开发工具集合。
所以SDK实际上和JDK没啥直接联系,SDK比较抽象,JDK则是具体指Java开发工具包,它们两都不是一个次元的,硬要说的话,JDK可以被描述成Java开发的SDK
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)