javaJVM内存区域的知识点有哪些

这篇文章主要讲解了“java JVM内存区域的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java JVM内存区域的知识点有哪些”吧!

成都创新互联公司专业为企业提供复兴网站建设、复兴做网站、复兴网站设计、复兴网站制作等企业网站建设、网页设计与制作、复兴企业网站模板建站服务,十年复兴做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

JVM内存区域

java JVM内存区域的知识点有哪些

  • 程序计数器
    1.每个线程都有自己独立的程序计数器
    2.线程执行的是非native方法,则程序计数器中保存的是当前需要执行的指令的地址;执行native方法是,值是undefined
    3.程序计数器大小不会随着程序执行而变化,故不会发生OOM(OutOfMemory)

  • Java虚拟机栈
    1.是线程私有的;
    2.存储局部变量表、操作数栈、动态链接、方法出口;
    3.局部变量表存放基本数据类型(不是对象,是int,short,boolean等8种,其中long和double占用两个变量空间)和对象引用;
    4.线程请求的栈深度大于虚拟机允许的深度时,发生StackOverflowError异常;如果虚拟机栈动态扩展时,无法申请足够的内存则OutOfMemoryError。

  • 本地方法栈
    1.本地方法栈对虚拟机使用到的Native方法服务;
    2.也会抛出StackOverflowError和OutOfMemoryError。

  • Java堆
    1.在Java虚拟机启动时产生,是所有线程共享;
    2.可再细分,如从内存回收角度来看,可再分为新生代、老年代、Eden空间、From Survivor空间、To Survivor空间;如从内存分配角度看,可再分为多个线程私有的分配缓冲区;
    3.Java堆可以在物理上不连续,逻辑上连续即可;
    4.如果堆中没有内存完成实例分配,并且堆的总大小也无法再扩展时,抛出OutOfMemoryError。

  • 方法区
    1.是各个线程共享的内存区域;
    2.用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据;
    3.当方法区无法满足内存分配需求时,将抛出OutOfMemoryError。

  • 运行时常量池
    1.运行时常量池是方法区的一部分;
    2.存放Class文件中的常量信息、还会把翻译出来的直接引用也存储在这里;
    3.常量池无法再申请到内存时抛出OutOfMemoryError。

  • 直接内存
    1.不是Java虚拟机运行时数据区的一部分,是Java程序通过Native函数直接申请机器的内存;
    2.当内存不够时抛出OutOfMemoryError。

感谢各位的阅读,以上就是“java JVM内存区域的知识点有哪些”的内容了,经过本文的学习后,相信大家对java JVM内存区域的知识点有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


网站标题:javaJVM内存区域的知识点有哪些
当前链接:http://pwwzsj.com/article/gigdoc.html