• 技术文章 >java >java基础

    java中JVM运行时的内存整理

    小妮浅浅小妮浅浅2021-03-04 11:20:12原创3446

    在学习JVM有关内容的时候,我们经常会遇到堆、栈之类的知识点,对于新手来说,JVM的内容问题是不太理解的,这是因为很多人在基础知识点方面,对于概念的理解不是很透彻。本篇对于JVM运行会遇到的一些知识点进行整理,下面大家一起来学习下具体的内容吧。

    1、方法区是所有线程共享的,虚拟栈,本地方法栈和程序计数器是线程私有的。也就是说虚拟栈,本地方法和程序计数器是线程隔离的。程序计数器是唯一不会出现oom的部分。

    2、程序计数器可以看成当前线程执行的字节码的行号暗示器。

    3、虚拟机栈和线程的生命周期是一样的,当线程执行的时候会创建一个栈帧,用于存放当前线程的方法出口,局部变量表,操作数栈,动态连接等信息。

    4、本地方法栈用于调用native方法使用。

    5、是所有线程共享的部分,用于存储创建的对象。

    6、方法区一样都是所有线程共享的,方法区主要用于存放虚拟机加载的类的信息,常量,静态常量等信息。

    除了运行时数据区外还有一部分内存是不受虚拟机管理的部分,这一部分就是直接内存,直接内存是直接在物理的memory分配,我们经常使用的 ByteBuffer. allocateDirect 就是直接在物理内存上分配的。但是在虚拟机里面会有这部分内存的引用,以便对这一部分内存进行管理。

    以上就是java中JVM运行时的内存整理,本篇属于JVM中的基本理论介绍,大家对于有关内容学习完后,可以用文本进行保存,方便下次知识回顾。更多Java学习指路:Java基础

    专题推荐:java jvm
    上一篇:java注解的类型有哪些? 下一篇:java对象的创建及内存布局

    相关文章推荐

    • java IO中字节和字符的介绍• java中使用static的注意点• java中sdk安装和配置环境• java Array和Arrays的区别分析• java注解的类型有哪些?• java之jvm加载器有几种?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网