• <tr id='ok4UxU'><strong id='ok4UxU'></strong><small id='ok4UxU'></small><button id='ok4UxU'></button><li id='ok4UxU'><noscript id='ok4UxU'><big id='ok4UxU'></big><dt id='ok4UxU'></dt></noscript></li></tr><ol id='ok4UxU'><option id='ok4UxU'><table id='ok4UxU'><blockquote id='ok4UxU'><tbody id='ok4UxU'></tbody></blockquote></table></option></ol><u id='ok4UxU'></u><kbd id='ok4UxU'><kbd id='ok4UxU'></kbd></kbd>

    <code id='ok4UxU'><strong id='ok4UxU'></strong></code>

    <fieldset id='ok4UxU'></fieldset>
          <span id='ok4UxU'></span>

              <ins id='ok4UxU'></ins>
              <acronym id='ok4UxU'><em id='ok4UxU'></em><td id='ok4UxU'><div id='ok4UxU'></div></td></acronym><address id='ok4UxU'><big id='ok4UxU'><big id='ok4UxU'></big><legend id='ok4UxU'></legend></big></address>

              <i id='ok4UxU'><div id='ok4UxU'><ins id='ok4UxU'></ins></div></i>
              <i id='ok4UxU'></i>
            1. <dl id='ok4UxU'></dl>
              1. <blockquote id='ok4UxU'><q id='ok4UxU'><noscript id='ok4UxU'></noscript><dt id='ok4UxU'></dt></q></blockquote><noframes id='ok4UxU'><i id='ok4UxU'></i>
                专注Java教育12年 全国咨询/投诉热线:400-8080-105

                首页 hot资讯 JVM内存结构的简述

                JVM内存结构的简述

                更新时间:2020-10-29 17:35 来源:玩彩网 浏览495次

                JVM是java虚拟机的简称,它实现了程序与操作系统的分离,从而实现了java的跨平台性,所以我们有必要学习JVM运行机制与原理等相关知识。JVM内存结构是大家需要学习的内容,下面▃我们来介绍JVM内存结构是由哪些部分构成的,一起来学习吧。

                image.png


                先来对JVM虚拟机〒进行简单的介绍:(1)java程序经过一次编译之后,将java代码编译为字节码也就是class文件,然后在不同的操作系统上依靠不同的java虚拟机进行解释∏,最后再转换为不同平台的机器码,最终得到执行;(2)Java虚拟机(JVM)处在核心的位〓置,是程序与底层操作系统、硬件无关的关键;(3)JVM的下方是移植接口,移植接口由两∏部分组成:适配器和Java操作系统, 其中依赖于平台的部分称为适配器,JVM 通过移植接口在具体的平台和操作系统▲上实现;(4)JVM 的上方是Java的基本类库和扩展类库以及它们的API, 利用Java API编写的应用程序(application) 和小程序(Java applet) 可以在任何Java平台上↓运行而无需考虑底层平台。


                JVM内存结构可以用下图来表示:

                image.png

                下面是对JVM内存结构构成部分的介绍:


                一、程序计数器。java线程私有的,类似于操作系统里的PC计数器,可以看做是当前线程所执行的字节码的行号指示卐器。如果线程正在执行的是一个java方法,这个计数器记录的正在执行的虚拟机字节码◇指令的地址。如果正在执行的是native方法,这个计数器值则为空。undefined此内存区域是唯一一个在java虚拟规范中⌒没有规定任何OutOfMemoryError情况的区域


                二、虚拟机栈(栈内存)。java线程私有,虚拟机栈描述的是java方∩法执行的内存模型。每个方法在执行的时候,都会创建一个栈帧用于存储局部变量、操作数、动态链接、方法出口等信息。每★个方法调用都意味着一个栈帧在虚拟机栈中入栈到出栈的过程。


                三、本地方法栈,和java虚拟机栈的作∞用类似,区别是该区域为JVM提供使用Native方法的服务。


                四、堆内存。所有线程共享的一块区域,垃圾回收器♀管理的主要区域。目前主要垃圾回收算法都是分代收集算法,所以java堆中还可以细分为:新生代Ψ和老年代,再细致一点的还有eden区,from survivor、to survivor,默认情况下是8:1:1的比例。根据java虚拟机规范的规↙定,java堆可以处于物理上不连续的内存空【间中,只要逻辑上是连续的即可,就像我们的磁盘一样。


                五、方法区。各个线程共享的一个区¤域,用于存储虚拟机加载的类信息,常量、静态变量,即时编译器编译后的代码等数据。虽然虚拟机规范中◣把方法区描述成堆的一个逻辑部分,但是他却有一个别名叫Non-heap 非堆,目的是为了与java堆区ω分开来。运行时常量池。是方法区的一部分,用于存∞放编译器生成的各种字面量和符ω 号引用。


                JVM是java的虚拟机,在面试中,JVM面试题的出现几率都很大,所以也算是java编程中的重点学习内◆容,学好JVM内存结构有助于我们掌握JVM原理和相关操作,所以大家务↑必要学会JVM内存结构的内容,如果还有哪里不清楚的地方,可以在本站的java教程中找到」答案。


                提交申请后,顾问老师会电话与您沟通安排学习

                免费课¤程推荐 >>
                技术文档推荐 >>

                返回顶部