【什么是jvm?】

Java虚拟机(JVM)是一个软件,负责加载、验证和执行Java代码。它包含内存区域如类区域、堆、栈、程序计数寄存器和本地方法栈。类加载器,如bootstrapclassloader、extensionclassloader和systemclassloader,负责加载不同路径的类文件。ExecutionEngine执行内存中的指令,JIT编译器将Java指令转换为机器可执行代码。
摘要由CSDN通过智能技术生成

                                                      java 虚拟机

jvm是一个虚拟机,虚拟的计算机。jvm是一个软件,由c写的软件。

它是一个设计图,具体实现可以有其他的公司实现,如oracle等等

它提供一个java‘代码’可以运行的地方,由此对于一个系统只要安装有jvm就可以运行java代码。我们都知道java代码是比较高级的计算机语言,而计算语言是我们用来给计算写程序的文字,用来告诉计算机将如何工作的工具。

jvm的工作是加载代码,然后效验代码之后处理代码,提供运行环境。

jvm有一些东西:

      内存区域:内存设备是一个用存储代码的与数据的东西,为了方便处理不同的内存地址区域存放不同的东西,就像家里面的鞋柜,衣柜一样都占据的一个固定的空间

      类文件格式:规定的class文件的格式

      寄存器集:一堆寄存器,可能是cpu的寄存器吧

      垃圾收集堆:(garbage-collected heap):堆是一个数据结构,它就像可以处理排着队吃饭的人,可以改变的这些人吃饭的优先顺序。

      致命错误报告功能:有致命错误报告记录的功能

我们来看看jvm的内部结构。首先意识到jvm是一个软件,运行在操作系统之上的软件,他与硬件之间隔着操作系统。

    jvm里面有类加载器,有jvm分配与管理的内存区域以及处理引擎。

    首先我们讲一下jvm里面管理分配的内存区域,这些内存区域包括。

    类区域(class area),这里存储着每一个类的结构,比如运行时的常量池,属性和方法相关数据,关于方法的指令代码

    堆区域:这个地址区域是运行时的地址区域,对象的储存在这里。

     stack:这个区域存储局部一个frame变量和一些临时的计算机结果,以及涉及方法的调用和返回。每一个线程有一个jvm stack,在创建的thread的同时会创建一个jvm stack。方法的调用会有一个frame被创建,方法执行完后这个frame就被销毁。

     程序计数寄存器:这里储存者当前正在被执行的jvm虚拟机指令。

     本机方法栈:这里包含所有在程序中使用的本机方法。

上面讲的是jvm的内存分配图,但是这些对应的内存现在是空空的需要有一个东西吧我们的写的java这些代码给传上去,也就是加载上去,jvm里面有个叫的类加载器的东西,它就是干这个的。jvm里有个内置的类加载器,最为原始的类加载器是boostrap classloader,他加载一个名叫rt.jar的文件,里面包含那些标准的java 类文件,想java.util package,java.net package java.lang package这些。是所有类加载的父类。

以及一个它的扩展类extension classloader加载$JAVA_HOME/jre/lib/ext directory目录下的java类文件。

以及extension的扩展类system/application classloader 他加载来classpath的类文件。默认的文件地址的当前的文件夹。可以-cp 或者-classpath改变classpath

现在我们来到了最后一个地方,execution engine,它与jvm分配管理得内存地址交互。jvm是一个虚拟的计算机,那么有了内存那就要有处理器,专门读取内存里的程序然后返回处理的结果。有个个中断器读取字节流然后处理的里面的指令。有一个jit compiler,将java 虚拟机指令变成指定的cpu可以执行的指令。一个虚拟的处理器。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值