1,jvm的内存分那些区呢?
方法区:
1),有时候也成永久代,在该区很少发生GC,但不代表不发生GC,在这里进行的GC主要是对常量池的回收和对象类型的卸载
2 ) ,方法去主要是用来存储已被虚拟机加载的类的信息、常量、静态变量、和即时编译后的的代码等数据
3)、该区是被线程共享的
4)、方法区有一个运行时常量池,用于存储静态编译产生的字面量he符号引用。该常量池具有动态性,也就是说常量并不一定是编译时确定的,运行时生成的常量也会存在这个常量池中
虚拟机栈:
1),虚拟机栈也就是我们常说的栈内存,它为java方法服务,每个方法在执行的时候会创建一个栈帧,用于存储局部变量表,操作数栈,动态链接和方法出口等信息。
2),虚拟机栈是线程私有的,他的生命周期与线程相同。
3),局部变量表里的存储的是基本变量数据、returnAddress类型(指向一条字节码指令的地址)和对象引用,这个对象引用有可能是指向对象其实地址的一个指针,也有可能是代表对象的句柄与对象相关联的位置。局部变量所需的内存空间在编译器间确定。
4),操作数栈的作用主要用来存储运算结果以及运算的操作数,它不同于局部变量表通过索引来访问,而是压栈和出栈的方式。
5),每个栈帧都包含一个指向运行时常量池中该栈帧所属方法的引用,持有这个引用为了支持方法调用过程中动态连接,动态链接就是将常量池中的符号引用在运行时期转化为直接引用
本地方法栈:
本地方法栈和虚拟机栈的结构类似,只不过本地方法栈是给native方法服务的
堆:
java堆是所有线程共享的一块内存,在虚拟机启动创建,几乎所有的java对象都在堆中创建
程序计数器:
内存空间小,字节码解释器工作时通过改变这个计数值可以选取下一条需要执行的字节码指令,分支,循环,跳转,异常处理he线程恢复等功能都需要依赖这个计数器。该内存区域是唯一一个java虚拟机规范没有规定的oom情况的区域。
相关推荐
了解Jvm内存结构、垃圾收集器、类加载器等知识点,可以帮助我们更好地优化Jvm的性能。 在Jvm中,垃圾收集器的选择对性能产生了很大的影响。不同的垃圾收集器适用于不同的场景,选择合适的垃圾收集器可以提高Jvm的...
1. **理解JVM内存结构**:Java内存主要分为堆内存(Heap)和非堆内存(Non-Heap),其中堆内存又分为新生代(Young Generation)、老年代(Tenured Generation或Old Generation)和持久代(Permanent Generation或...
本资料"JVM 调优演示-JVM.zip"包含了一个名为"JVM-master"的项目,我们可以从以下几个方面来探讨JVM调优的相关知识点: 1. **垃圾收集器**:JVM中的垃圾收集器负责自动回收不再使用的对象所占用的内存。不同的垃圾...
下面,我们将深入探讨JVM的一些关键知识点。 1. **JVM架构**: - **类加载器**:负责加载.class文件,确保程序运行所需的类能够被找到并加载到内存中。 - **运行数据区**:包括堆、方法区、虚拟机栈、本地方法栈...
下面,我们将深入探讨JVM调优的相关知识点。 1. **JVM内存模型**:JVM内存分为堆内存(Heap)、方法区(Method Area)、虚拟机栈(JVM Stack)、本地方法栈(Native Method Stack)和程序计数器(PC Register)。...
在进行JVM内存配置优化之前,我们需要了解Java虚拟机(JVM)的内存结构。Java的逻辑内存模型大致分为几个部分: 1. **堆内存(Heap)**:主要用于存储对象实例、数组等引用类型的数据。在Java中使用`new`关键字创建的...
本文将深度剖析JVM中的四个核心领域:类的加载机制、内存结构、垃圾回收(GC)算法以及GC分析与命令调优,旨在为Java开发者提供全面的JVM知识。 **类的加载机制** 类加载过程是JVM将.class文件的二进制数据读入...
以下是一些关于JVM内存的重要知识点: 1. **JVM内存结构**: JVM内存主要分为五个区域:方法区(Method Area)、堆(Heap)、虚拟机栈(Java Virtual Machine Stack)、本地方法栈(Native Method Stack)和程序...
Java虚拟机(JVM)是Java程序运行的...通过深入学习以上知识点,你将能够熟练地解决JVM相关的各种问题,无论是内存泄漏、性能瓶颈还是其他异常情况。同时,不断实践和应用这些知识,才能真正提升你在Java开发中的能力。
Java虚拟机(JVM)是Java程序运行的基础,它提供了内存管理、类...理解这些JVM知识点对于优化Java应用性能、排查内存泄漏等问题至关重要。通过不断学习和实践,开发者可以更好地驾驭JVM,确保Java程序高效稳定地运行。
总的来说,JVM原理、JVM调优、JVM内存模型和JAVA并发是Java程序员和系统管理员需要深入了解的知识点,因为它们直接影响到Java程序的性能和稳定性。了解这些知识点有助于开发者编写性能更优的代码,并在生产环境中对...
这个名为"JVM-subject-master"的项目,很可能是包含了一系列的测试用例、脚本和分析报告,用于模拟不同的工作负载,帮助开发者实践和理解上述的JVM调优知识点。通过深入研究和实践这个项目,可以提升我们的JVM调优...
### JVM知识点总览 #### JVM概述与重要性 在IT领域,尤其是对于Java开发者而言,JVM(Java Virtual Machine,Java虚拟机)的重要性不言而喻。正如武术中所说的“内外兼修”,对于初级程序员来说,掌握框架和API的...
6. **直接内存**:直接内存并不是JVM规范的一部分,但通过NIO(New Input/Output)可以直接访问,通常用于提高性能,减少Java堆和Native堆之间的数据复制。 二、JVM执行子系统 1. **Class类文件结构**:Java源代码...
这个PPT文件很可能是这次学习材料的主要内容,涵盖了JVM的多个关键知识点。 基于以上信息,可以预见这份PPT可能涵盖以下JVM相关的详细知识点: 1. **JVM架构**:包括类加载子系统、运行时数据区、执行引擎、本地...
### JVM技术精华——架构师必备知识点详解 #### 一、HotSpot VM介绍及发展历程 **HotSpot VM**作为Sun JDK和OpenJDK的核心组件之一,是当前应用最为广泛的Java虚拟机。HotSpot VM最初并不是由Sun公司开发,而是...
Java的JVM(Java Virtual Machine)是Java程序运行的基础,它是一个虚拟的...掌握这些JVM相关知识点,不仅能够帮助Java开发者在面试中脱颖而出,也能在实际开发中更好地调试和优化应用程序,提高软件性能和稳定性。
这个路径涵盖了从应用框架到底层硬件的关键环节,让我们逐步解析其中涉及的知识点: 1. **框架**:框架是开发者在特定编程语言中编写软件的一种结构化方法,它提供了基础结构和约定,帮助快速构建应用程序。Java...
1. **内存结构** - **堆(Heap)**:所有线程共享的内存区域,用于存储对象实例。堆分为新生代和老年代。 - **新生代** 包括Eden区、Survivor区(from和to)。新生代采用复制算法进行垃圾回收,通常eden:survivor:...
一、JVM内存结构 1. **堆内存**:Java对象的主要存储区域,分为新生代和老年代,新生代又细分为Eden区和两个Survivor区(From和To)。对象首先在Eden区创建,经过垃圾回收后存活的对象会转移到Survivor区,再经过多...