jvm内存模型有哪些,jvm内存模型和jvm内存结构

  jvm内存模型有哪些,jvm内存模型和jvm内存结构

  本文带你对JVM内存模型有个初步的了解,有一定的参考价值。有需要的朋友可以参考一下,希望能帮到你。

  如何解决写爬虫IP受阻的问题?立即使用。

  计算机内存模型

  当程序运行时,CPU访问主存以获取数据。但是随着CPU的飞速发展,CPU的访问速度越来越高。在硬件无法满足CPU要求的情况下,大部分内存都加入了缓存机制,不同的CPU都有对应的多级(一般是三级)缓存。CPU访问数据时,会先按照一级缓存、二级缓存、三级缓存、主存的顺序进行访问,提高了访问速度。但同时,不同CPU的缓存

  JAVA内存模型

  JAVA内存模型(JMM)符合计算机内存模型规范。通过设置内存屏障,屏蔽不同硬件和操作系统的访问差异,保证java程序在不同平台上对内存的访问效果相同。

  五大内存区域

  1.程序计数器

  每个线程都有一个程序计数器,用来标识当前线程的程序字节码的行号。当java方法运行时,程序计数器存储字节码文件的行号。native method运行时,程序计数器的内容为空,不同的线程有自己的程序计数器,是线程私有的。

  2.JAVA虚拟机栈

  每个方法在运行时都会创建一个堆栈框架,包括存储局部变量表、操作堆栈、动态链接、方法出口等信息。被调用的每个方法的过程对应于从堆栈到虚拟机堆栈中的堆栈帧的过程。

  JAVA stack主要用来存储方法参数、方法中的局部变量、编译时加载的数据类型和返回地址类型,这些都是线程私有的。

  3.本地方法栈

  类似于java虚拟机栈,不同的是后者服务的是虚拟机运行的JAVA方法(字节码),而本地方法栈服务的是虚拟机调用的原生方法,也就是底层服务,一般用C或C编写。

  4.堆

  堆是虚拟机加载的最大部分内存区域,用于存储对象实例。只要逻辑地址是连续的,它就可以存储在不连续的存储器地址中。分为新生期和老年期,新生期与老年期之比为1: 2(可通过参数-XX:NewRatio指定)

  5.方法区

  也称为永久生成,用于存储虚拟机加载的类信息、常量和静态变量。它是线程的共享区域,JDK8后来被放弃,用作元空间。

  推荐教程:java教程以上就是什么是JVM内存模型?更多详情请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: