Java虚拟机 jdk jre

一、Java虚拟机

首先我们要了解Java程序执行有两步:编译、解释。
Java语言编写的程序经过编译,生成一种与平台无关的字节码( .class文件),而不会生成特定平台的机器码;但是这种字节码是不可执行的,需要使用Java解释器来解释执行,而Java虚拟机就负责解释。因为Java语言不是纯粹的编译型语言,也不是纯粹的解释型语言,它必须先编译再解释,即有了Java虚拟机的存在,负责解释
在这里插入图片描述
其次,虚拟机是一种抽象的计算机,它通过在实际的计算机上仿真模拟各种计算机功能来实现。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还有相应的指令系统。Java虚拟机屏蔽了与操作系统平台相关的信息,是的Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改的运行,即Java虚拟机使Java语言拥有了跨平台特性。

JVM——Java Virtual Machine(Java虚拟机)
Java语言中负责解释执行字节码文件的是Java虚拟机,即JVM是可与运行Java字节码文件的虚拟计算机。

所有平台的JVM向编译器提供相同编程接口,而编译器只用面向虚拟机,生成虚拟机能理解的代码,然后又虚拟机执行。

Java编译器编译Java程序时,生成的是与平台无关的字节码,这些字节码不面向任何具体平台,只面向JVM。

不同平台的JVM都是不同的,但他们提供相同的接口。JVM时Java程序跨平台的关键部分,只要为不同的平台实现了相同的虚拟机,编译后的Java字节码可在该平台上运行。

JVM分为向上向下两个部分,所有平台的JVM向上提供给Java字节码程序的接口相同,但是向下适应不同平台的接口则互不相同。 即不同平台上的Java字节码程序都是相同的,但是这个字节码程序无法适应不同平台,所以JVM将其转换为平台适应的程序。

参考自:

https://blog.csdn.net/ytm15732625529/article/details/80383343
https://blog.csdn.net/liyang_nash/article/details/78742623

二、 jre 、 jdk

JRE( Java Runtime Environment )Java运行环境,包含了Java虚拟机、Java基础类库,他是使用Java语言编写的程序运行所需要的软件环境,是提供给想要运行Java程序的用户使用的,还有所有的Java类库的class文件,都在lib目录下,并都打包成了jar。在操作系统上,虚拟机在/bin/client中的jvm.dll。

JDK( Java Development Kit )Java开发工具包,是程序员用Java语言编写的Java程序所需的开发工具包,是提供给程序员用的。jdk包含了Java源码编译器javac,Java程序调试和分析工具:jconsole,jvisualvm等工具软件,以及Java编写所需的文档和demo实例子程序。jdk包括了jre。

jre只能运行Java程序,而jdk可以开发Java程序。
在这里插入图片描述

参考自:

https://www.cnblogs.com/lsw9/p/8685623.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值