JAVA学习之JDK,JRE和JVM

 1.JVM--Java Virtual Machine(Java虚拟机)

1.1 定义 

 JVM提供了执行Java字节码的运行环境,它还可以运行用其他语言编写并编译成字节码的程序。它只是一组规范,在物理上并不存在。JVM能够:加载代码、验证代码、执行代码并提供运行环境。

1.2 JVM的结构

Classloader

类加载器是JVM的一个子系统,用于加载类文件。每当我们运行Java程序时,它首先由类加载器加载.

Method Area方法区

用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

Heap 堆

它是在运行时存储对象的数据区域。我们将new出来的结构(比如数组、对象)加载在堆空间中。补充:对象的属性(非static的)加载在堆空间中。

Stack 栈

栈在Java中用来保存局部变量和部分结果,并在方法调用和返回中发挥作用。每个线程都有一个私有JVM栈,与线程同时创建。

PC Register

PC(程序计数器)寄存器包含当前正在执行的Java虚拟机指令的地址。

Native Method Stack

它包含应用程序中使用的所有本机方法。

Execution Engine

它包含:

1.虚拟处理器

2.解释器(Interpreter):读取字节码流,然后执行指令。

3. 即时编译器(Just-In-Time compiler):它被用来提高性能.JIT同时编译具有类似功能的部分字节代码,从而减少编译所需的时间。

Java Native Interface

JNI是一个框架,它提供一个接口来与另一种语言(如C、C++、Assembly等)编写的应用程序进行通信。Java使用JNI框架将输出发送到控制台或与OS库交互。

 2.JRE--Java Runtime Environment

 JRE是为运行Java程序提供环境的安装包,它是JVM的实现。它在物理上是存在的。它包含一组库和JVM在运行时使用的其他文件。

3.JDK--Java Development Kit

3.1 定义

 JDK是为开发和运行Java程序提供环境的工具包,它仅被Java开发者使用,包括:

1. 开发工具(用来开发Java程序)

2.JRE (用来执行Java程序)

JDK分为三个版本:标准版(Java SE,用来做电脑上运行的软件),企业版(Java EE,用来做网站)和移动版(Java ME,用来做手机软件)。

jdk vs jre vs jvm - Java Beginners Tutorial

3.2 JDK中的部分组件的作用:

javac: 它指定Java编译器,它将源代码转换为Java字节码。

java: Java应用程序的加载程序。这个工具是一个解释器,可以解释javac编译器生成的类文件。

javadoc: 文档生成器,它从源代码注释自动生成文档。

jar: 指定归档程序,它将相关类库打包到单个JAR文件中。此工具还有助于管理JAR文件。

javap: 类文件反汇编程序。

JConsole: Java监控和管理控制台。

Java VirtualVM:它是一个可视化工具,集成了几个命令行jdk工具和轻量级性能和内存分析功能。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值