java线程存放在jvm的哪个区域?方法又存放在哪个区呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java线程存放在jvm的哪个区域?方法又存放在哪个区呢?相关的知识,希望对你有一定的参考价值。

聊到JAVA中的方法,大多数人对于方法存储在方法区还是栈区(虚拟机栈)是很迷茫的。其实方法是存在方法区的下面我们就细细说一下JVM中的 方法区 VS 栈区方法区:用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据,方法编译出的字节码也是保存在这 参考技术A jvm方法区中存放的是什么东?jvm方法区? 方法区1.放了些什么每个类的结构信息,运行时常量池、字段、方法数据、普通方法、构造方法的字节码内容。(这是规范,不同虚拟机的实现是不同的 最典型的就是永久代PermGen space和元空间Metaspace)实例变量在堆内存中,和方法区无关。2.绝对不是用来放方法的3. 这块区域所有线程共享,存在垃圾回收。 参考技术B 解决这个问题的方案不止一个,我认为我想的这个方案并不能准确的解决你的问题,详细的答案还需要你自行思考。 参考技术C 线程的每个方法被执行的时候,都会同时创建一个帧(Frame)用于存储本地变量表、操作栈、动态... 堆区又划分了很多区域,为

Java杂记之JVM内存模型

1.运行时数据区

在运行Java程序的时候,JVM需要使用内存存放各式各样的数据,JVM规范将这部分内存区域叫做运行时数据区

运行时数据区可以分为两类:

  • 多线程共享的

    这部分需要在JVM启动的时候创建好,在JVM退出的时候销毁。

  • 线程私有的

    这部分是在线程创建的时候创建,线程结束的时候销毁。

2.多线程共享内存

多线程共享内存区域主要存放两大类数据:

  • 类数据
    类数据存放在方法区(Method Area)中。
  • 类实例(也就是对象)
    实例数据存放在堆(Heap)中。堆由垃圾回收器定期进行清理(JVM的垃圾回收也就主要作用在该区域),所以程序员不需要关心对象空间的释放。

以上是关于java线程存放在jvm的哪个区域?方法又存放在哪个区呢?的主要内容,如果未能解决你的问题,请参考以下文章

JVM面试大总结

jvm内存区域----线程共享区

JVM垃圾回收内部详解

JVM垃圾回收内部详解

jvm内存区域重点概要

JVM内存区域以及OOM