Java,JVM虚拟机简单了解

本文深入解析Java环境中的jdk, jre与jvm的区别与联系,阐述它们在Java开发和运行过程中的角色。从jdk作为开发工具包,到jre作为运行环境,再到jvm作为核心执行引擎,层层递进,揭示Java程序跨平台运行的秘密。
摘要由CSDN通过智能技术生成

1. 关于jdk,jre,jvm的区别联系

1.1 Java编译器,即jdk,是用来将源码编译成class字节码文件的,是java的开发环境,比如我们下载idea或者eclipse后,就会配置相应版本的jdk文件。
1.2 而虚拟机,即JVM,是指装有jre的可以运行class字节码的一种抽象化的计算机
1.3 jdk>jre >jvm,jdk工具包中含有jre运行环境,jre中包含jvm虚拟机

jdk:Java Development Kit
jre:Java Runtime Environment
jvm:Java Virtual Machine

JRE顾名思义是Java运行时环境,包含了Java虚拟机,Java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。
JDK顾名思义是java开发工具包,是程序员使用Java语言编写Java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译Java源码的编译器javac,还包含了很多Java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。

2.JVM的组成

JVM是可运行Java代码的假想计算机,包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收,堆和一个存储方法域。JVM是运行在操作系统上的,它与硬件没有直接的交互。

3. 作用

Java虚拟机的作用:(核心是解释运行字节码程序消除平台相关性)。jvm将字节码解释为具体平台的具体指令,一般高级语言要在不同的平台上运行,至少需要编译成不同的目标代码。而引入java虚拟机后,java语言在不同平台上运行时不需要重新编译,Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需要生成在java虚拟机上运行的字节码,即可在多种平台上不加修改的运行。java虚拟机在执行字节码文件时,会通过Java虚拟机种的解释器,把字节码解释成具体平台的机器指令执行。

在这里插入图片描述

4.运行过程

Java源文件————编译器——————字节码文件,
字节码文件————JVM——————机器码,即上图。
当一个程序开始运行时,虚拟就就开始实列化,多个程序启动就会存在多个虚拟机实例。程序退出或者关闭时,虚拟机实例消亡,多个虚拟机实例之间的数据不能共享。

字节码文件被JVM执行的过程如下:
JVM的组成可分为:类加载器,运行时数据区,执行引擎,本地接口这四部分。而运行时数据区是我们关心的重点

在这里插入图片描述
关于栈,堆和方法区的简单作用和特点如下:(来自尚学堂JavaSE课件)
栈用来存储局部变量,操作数,方法出口等,堆用来存储创建好的对象和数组,方法区用来存储类信息,静态变量,字符串常量等
在这里插入图片描述
new一个computet和一个student对象时,图如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值