`
glutinit
  • 浏览: 47298 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JVM摘要--Heap和Method Area

    博客分类:
  • JVM
阅读更多
Heap(堆)
所有的JVM线程共享一个Heap。 Heap中存放的是所有类的instances和数组。Heap在VM启动时就创建了,堆中的存储空间是由一个自动空间管理系统(也称之为垃圾回收器)来负责回收的;对象从不明确的被释放(Objects are never explicitly deallocated.),JVM没有强调用何种垃圾回收技术。堆的尺寸也可以是固定或者动态增减的。堆中的内存空间不需要连续。堆的初始尺寸,最大最小尺寸值也是可以设定的。
堆中的异常:
如果请求的堆空间大于automatic Storage management system允许的范围,则抛出OutOfMemoryError

Method Area(方法区)
JVM中含有一个在多个JVM线程中间共享的方法区,方法区是连续存放的。
在方法区中存放着每个类的结构信息,包括运行时的常量池(constant pool),类属性和方法数据,以及这些方法的代码和构造函数(包括实例初始化接口初始化和类中会用到的专用方法)。
方法区也是在VM启动后就创建了。尽管方法区逻辑上属于Heap的一部分,但一般不用GC去回收或压缩它的空间。JVM的规范中也没有明确规定方法区的位置或者用于管理编译后代码的具体策略。方法区的尺寸大小也是可固定,可缩放的。
同Heap的异常一样,方法区的异常也是OutOfMemoryError。
分享到:
评论

相关推荐

    JVM基础-超清文字版.pdf

    - 方法区(Method Area):存储类信息、常量、静态变量等。 - 堆(Heap):对象实例和数组的分配空间,是所有线程共享的区域。 - 栈(Stack):每个线程都有一个独立的栈,用于存储局部变量、方法调用信息。 - ...

    jvm调优-jvm.zip

    1. **内存模型**:JVM内存分为堆内存(Heap)、方法区(Method Area)、栈内存(Stack)、程序计数器(PC Register)和本地方法栈(Native Method Stack)。理解这些区域的作用和大小设置对调优至关重要。 2. **堆...

    【IT十八掌徐培成】Java基础第26天-03.JVM结构-finalize-gc.zip

    - 运行时数据区(Runtime Data Area):包括方法区(Method Area)、堆(Heap)、虚拟机栈(Virtual Machine Stack)、本地方法栈(Native Method Stack)和程序计数器(Program Counter Register)。 - 执行引擎...

    jvm性能调优-jvm内存模型和优化-performance-jvm-memorymodel-optimize.zip

    5. **方法区(Method Area)/运行时常量池(Runtime Constant Pool)**:存储类的信息,包括类名、方法信息、常量等。这部分内存也参与垃圾回收。 二、内存模型优化 1. **堆内存优化**: - **对象创建优化**:...

    gp-jvm-visualvm

    在运行过程中,JVM会管理内存,包括堆(Heap)、栈(Stack)以及方法区(Method Area),这些区域各有其特定的功能和限制。 堆栈溢出(Stack Overflow)是程序运行时常见的错误,通常发生在当一个函数或方法的递归...

    JVM-内存管理 2012-12.pdf

    首先,JVM内存管理涉及的内存空间主要分为方法区(Method Area)、堆(Heap)、本地方法栈(Native Method Stacks)、程序计数器(Program Counter)和JVM方法栈(JVM Stack)。其中,方法区和堆是由所有线程共享的...

    JVM 参数调优-optimization-jvm.zip

    1. **JVM内存模型**:JVM内存主要分为堆内存(Heap)、方法区(Method Area)、虚拟机栈(JVM Stack)、本地方法栈(Native Method Stack)和程序计数器(Program Counter Register)。了解每个区域的作用和配置参数...

    JVM调优的测试项目-JVM-subject.zip

    1. **JVM内存模型**:JVM内存分为堆内存(Heap)、方法区(Method Area)、程序计数器(PC Register)、虚拟机栈(JVM Stack)和本地方法栈(Native Method Stack)。理解这些区域的用途和相互关系是调优的基础。 2...

    JVM内核架构--JVM规范

    Method area: holds the details of each class loaded by the class loader subsystem. Heap: holds every object being created by the threads during execution Thread specific runtime data areas: Program ...

    java-JVM-面试题

    - **方法区(Method Area)**:存储类信息、常量、静态变量等,JDK 1.8后被元空间(Metaspace)取代。 3. **JDK 1.6、1.7、1.8的区别** - JDK 1.6:采用了分代收集算法,永久代(PermGen)用于存储类的元数据。 ...

    面试-Java一些常见面试题+题解之JVM-JVM.zip

    2. **内存区域**:JVM内存分为堆(Heap)、栈(Stack)、方法区(Method Area)、程序计数器(PC Register)和本地方法栈(Native Method Stack)。堆存储对象实例,栈处理方法调用,方法区存储类信息,程序计数器...

    java -jvm 内存分配和jvm调优

    Java内存主要分为五个区域:堆(Heap)、栈(Stack)、方法区(Method Area)、程序计数器(PC Register)和本地方法栈(Native Method Stack)。 1. 堆(Heap):这是Java对象的主要存储区域,所有通过new创建的...

    JAVA-JVM-全面/发展史/GC.zip

    JVM的内存模型包括堆(Heap)、栈(Stack)、方法区(Method Area)、程序计数器(PC Register)和本地方法栈(Native Method Stack)。其中,堆是所有对象的存储空间,而栈则存储方法调用的状态。 垃圾回收(GC)...

    JVM性能调优-JVM内存整理及GC回收.pdf_java_jvm_

    2. **方法区(Method Area)**:存储类信息、常量、静态变量等元数据。在Java 8以后,这部分被改称为元空间(Metaspace)。 3. **栈内存(Stack Memory)**:每个线程都有自己的程序计数器、虚拟机栈和本地方法栈,...

    java技术面试必问:JVM-内存模型讲解.docx

    JVM内存模型共分为5个区:堆(Heap)、方法区(Method Area)、程序计数器(Program Counter Register)、虚拟机栈(VM Stack)、本地方法栈(Native Method Stack)。其中,堆(Heap)、方法区(Method Area)为...

    JVM调优测试-jvmDemo.zip

    1. **JVM内存模型**:JVM内存分为堆内存(Heap)、方法区(Method Area)、虚拟机栈(JVM Stack)、本地方法栈(Native Method Stack)和程序计数器(PC Register)。了解这些区域的功能和交互是调优的基础。 2. **...

    JVM-1.内存结构笔记

    方法区(Method Area)是 JVM 中的内存分配区域,用于存储类的元数据、字段和方法信息等。方法区是所有线程共享的,用于存储类的元数据、字段和方法信息等。 注意 在 JVM 中,栈帧过多或栈帧过大都会导致栈内存...

    思维导图-详细了解JVM和GC过程

    JVM内存主要分为堆(Heap)、栈(Stack)、方法区(Method Area)、本地方法栈(Native Method Stack)和程序计数器(Program Counter Register)五大部分。 - **堆**:所有对象实例都在堆中创建,是JVM中最大的...

    MSB企业级JVM优化与性能调优课程 解读JVM内部机制-针对性解决企业架构优化问题

    JVM(Java虚拟机)内存模型主要包括堆内存(Heap)、方法区(Method Area)、程序计数器(Program Counter Register)、虚拟机栈(Virtual Machine Stack)和本地方法栈(Native Method Stack)。其中: - **堆内存...

    JVM内存设置与调优指南

    3. **方法区(Method Area)/元空间(Metaspace)**:存储类信息、常量、静态变量和即时编译的代码。在Java 8之后,元空间替代了原来的方法区,使用 native memory 来管理。 4. **虚拟机栈(VM Stack)**:每个线程...

Global site tag (gtag.js) - Google Analytics