`
学而智之
  • 浏览: 6281 次
  • 性别: Icon_minigender_1
  • 来自: 江西玉山
社区版块
存档分类
最新评论

JVM内存划分

阅读更多

一、引导

内存作为系统中重要的资源,对于系统稳定运行和高效运行起到了关键的作用,Java和C之类的语言不同,不需要开发人员来分配内存和回收内存,而是由JVM来管理对象内存的分配以及对象内存的回收(又称为垃圾回收、GC),这对于开发人员来说确实大大降低了编写程序的难度,但带来的一个副作用就是,当系统运行过程中出现JVM抛出的内存异常(例如OutOfMemoryError)的时候,很难知道原因是什么,另外一方面,要编写高性能的程序,通常需要借助内存来提升性能,因此如何才能合理的使用内存以及让JVM合理的进行内存的回收是必须掌握的。

二、JVM内存划分

1. 栈区(stack segment):由编译器自动分配释放,存放函数的参数值,局部变量的值等,具体方法执行结束之后,系统自动释放JVM内存资源
2. 堆区(heap segment):一般由程序员分配释放,存放由new创建的对象和数组,jvm不定时查看这个对象,如果没有引用指向这个对象就回收
3. 全局数据区(data segment):存放全局变量,静态变量和字符串常量,不释放
4. 代码区(code segment):存放程序中方法的二进制代码,而且是多个对象共享一个代码空间区域

三、解释说明

1.在方法(代码块)中定义一个变量时,java就在栈中为这个变量分配JVM内存空间,当超过变量的作用域后,java会自动释放掉为该变量所分配的JVM内存空间;
2.在堆中分配的JVM内存由java虚拟机的自动垃圾回收器来管理
3.堆的优势是可以动态分配JVM内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配JVM内存的。缺点就是要在运行时动态分配JVM内存,存取速度较慢;
4.栈的优势是存取速度比堆要快,缺点是存在栈中的数据大小与生存期必须是确定的无灵活性。

分享到:
评论

相关推荐

    JVM内存空间分配笔记

    ### JVM内存空间分配详解 #### 一、JVM内存模型概览 JVM(Java虚拟机)内存模型主要由以下几个部分组成:程序计数器、Java虚拟机栈、本地方法栈、Java堆以及方法区(在JDK 8之后称为元空间)。下面将对这几个部分...

    jvm 内存分析文档

    JVM内存管理主要包括内存结构、内存分配以及垃圾回收(GC)等方面。了解这些知识对于优化Java应用程序的性能至关重要。 ### 1. JVM内存结构 #### 1.1.1 JVM内存概述 JVM内存分为几个关键区域,每个区域都有特定的...

    JVM内存区域划分.docx

    "JVM内存区域划分" JVM内存区域划分是Java虚拟机(JVM)中的一种内存管理机制,主要分为五个部分:程序计数器、Java栈、本地方法栈、堆和方法区。这些区域各自扮演着不同的角色,共同组成了JVM的内存管理系统。 ...

    JVM 内存结构及配置总结

    1. **JVM内存结构** JVM内存主要分为以下几个区域: - **方法区(Method Area)**:这是所有线程共享的区域,存储类信息、常量、静态变量、即时编译后的代码等。在Java 8以前,这部分也被称为永久代(Permanent ...

    JVM-内存管理 2012-12.pdf

    总结而言,JVM内存管理涉及多个层面,包括内存结构的划分、内存空间的分配与回收机制、以及内存分析工具的使用。对Java开发人员而言,理解这些内存管理机制不仅能够帮助其编写出更加稳定和高效的代码,还能在发生...

    JVM 性能调优_JVM 内存区域划分.pdf

    JVM性能调优_JVM内存区域划分 JVM(Java Virtual Machine)是 Java 语言的核心组件之一,其性能优化对 Java 应用程序的执行效率和稳定性具有至关重要的影响。在 JVM 中,内存区域的划分和管理是性能优化的关键所在...

    JVM内存分配与垃圾回收详解

    Java 堆也是垃圾收集器管理的主要区域,如果从内存回收的角度看,由于现在收集器采用分代收集算法所以可以分为老年代和新生代,再细致有 Eden 空间、from 空间、to 空间,但是无论怎么划分,它都是只是存储对象实例...

    JVM内存区域划分.pdf

    在Java面试中,对于JVM内存区域的划分是一个经常会涉及到的考点,因此理解这些知识点对于准备Java相关面试的求职者来说是十分必要的。通过这个文档的学习,我们可以加深对JVM内存管理的理解,进一步掌握Java程序运行...

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

    ### JVM性能调优——JVM内存管理与GC回收详解 #### 概览 在现代软件开发领域,Java凭借其强大的跨平台能力和丰富的生态系统成为企业级应用的首选语言之一。然而,随着应用程序复杂度的提高以及业务需求的变化,...

    JVM内存区域划分Java系列2021.pdf

    JVM内存区域划分详细解析: JVM(Java Virtual Machine,Java虚拟机)是运行Java字节码的虚拟机进程。在JVM中,内存区域被划分为几个不同的部分,每一个部分有着不同的用途,从而实现了JVM的稳定和高效运行。根据...

    实战Hot Spot JVM GC

    总之,熟悉JVM内存划分和GC机制,以及掌握相关监控工具和参数配置,对于避免内存泄漏、提升Java程序的性能和稳定性至关重要。通过实战操作,分析和优化HotSpot JVM GC的工作,是每个Java开发者必须面对和解决的问题...

    JVM内存管理及GC原理调优实战

    JVM调优是一个系统而又复杂的过程,由于Java虚拟机自动管理内存,在大多数情况下,我们基本上不用去调整JVM内存分配,因为一些初始化参数已经可以保证应用服务正常稳定地工作。但是当有性能问题的时候该怎么去调优,...

    深入详解JVM内存模型与JVM参数详细配置.pdf

    "深入详解JVM内存模型与JVM参数详细配置" 本资源详细介绍了JVM内存模型的结构和组成部分,包括堆内存、方法区、栈内存、程序计数器等。同时,还详细介绍了JVM参数的配置和调整方法,以提高JVM的性能和效率。 ...

    JVM内存管理学习笔记

    本文将从JVM内存模型、内存区域划分、垃圾收集机制以及相关工具的使用等方面进行详细的探讨。 一、JVM内存模型 JVM内存主要分为五个区域:堆内存(Heap)、虚拟机栈(Java Stack)、方法区(Method Area)、本地...

    三问JMM--有关JVM内存模型的PPT

    ### 三问JMM——有关JVM内存模型的深度解析 #### 前言 近期,在诚信通开源研究小组的专题学习分享会上,我们针对Java内存模型(JMM)进行了深入探讨,现将JMM相关的一些核心概念进行梳理,以便更好地理解和把握JMM的...

    第25讲谈谈JVM内存区域的划分,哪些区域可能发生OutOfMemoryError1

    了解JVM内存区域的划分及其工作原理对于Java开发者来说至关重要,这有助于理解和解决性能问题,如内存泄漏和栈溢出。在实际开发中,合理设置JVM参数(如-Xms, -Xmx等)可以有效防止内存错误,同时,通过阅读如《深入...

    JVM内存模型和性能优化.docx

    分代垃圾收集(Generational Garbage Collection)结合了这些算法的优点,将内存划分为新生代(New Generation)、Survivor空间和老生代(Old Generation),以适应不同生命周期的对象。 JVM性能优化主要涉及内存...

    java JVM 内存回收

    5. **分代收集器**:根据对象生命周期将内存划分为新生代、老年代等,不同代使用不同的收集策略,提升效率。 6. **并发收集器**:与应用程序并发执行,尽可能减少停顿时间,如CMS(Concurrent Mark Sweep)收集器。...

Global site tag (gtag.js) - Google Analytics