美文网首页
JVM内存管理

JVM内存管理

作者: 善思者_tin | 来源:发表于2020-02-10 23:28 被阅读0次


一、概述

当我们平时工作的时候,就学习java之初提到JVM,而后都着重学习java API 。然而,当我们在工作遇到outOfMemery的时候,可能无从下手,此时,深入JVM就相当有必要了。

二、JVM运行时数据区

三、线程共享区

线程共享区:多个线程运行时共享在同一个区域,比如方法区,线程共享区包含方法区和Java堆。

方法区:是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

Java堆:存储对象的实例。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例以及数组都在这里分配内存。

四、线程独占区

线程独占区:我们都知道每个线程都是一个顺序的执行单元,线程独占区就是每个线程都有自己的独占单元,包括有自己的程序计数器,本地方法栈和虚拟机栈。

虚拟机栈:存放方法运行时所需的数据,成为栈帧。

本地方法栈:和虚拟机栈所发挥的作用非常相似,区别是: 虚拟机栈为虚拟机执行 Java 方法 (也就是字节码)服务,而本地方法栈则为虚拟机使用到的 Native 方法服务。

程序计数器:是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。另外,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各线程之间计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存。

注意:程序计数器是唯一一个不会出现 OutOfMemoryError 的内存区域(因为开发者不会去操作程序计数器,它是jvm内部进行维护),它的生命周期随着线程的创建而创建,随着线程的结束而死亡。

相关文章

  • 初见JVM内存区域

    初见JVM内存区域 JVM一个重要的机制就是自动内存管理机制,为了深入理解JVM的内存管理机制,了解JVM的内存...

  • 【问答】补充

    Java JVM如何管理内存的? Java中内存管理是JVM自动进行的,创建对象或者变量时JVM会自动分配内存,当...

  • Android性能优化-内存泄漏的几个案例

    JVM内存管理 Java采用GC进行内存管理。深入的JVM内存管理知识,推荐《深入理解Java虚拟机》。 关于内存...

  • [JVM系列]JVM内存管理详解

    JVM内存管理详解

  • Java基础之引用类型

    一、概念 在Java语言中,由JVM进行内存的管理,JVM通过一定的内存回收机制来管理内存,对系统不再使用但JVM...

  • JVM内存结构、运行时内存以及类加载过程

    以下内容都是基于jdk1.8 1、JVM 内存管理 2、JVM内存区域 JVM内存区域主要分为线程私有Thread...

  • JVM内存结构

    以下信息摘录自:深入理解JVM的内存结构及GC机制 JVM内存管理 根据JVM规范,JVM把内存区域划分成了以下几...

  • Java基础

    JVM内存 1、JVM 内存管理和GC知识概述和总结(20190711) https://www.atatech....

  • [JVM] JVM内存结构浅析

    JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM高效稳定运行。 经典的JVM内存布...

  • jvm 基础第一节: jvm数据区

    程序内存管理分为手动内存管理和自动内存管理, 而java属于自动内存管理,因此jvm的职能之一就是程序内存管理 j...

网友评论

      本文标题:JVM内存管理

      本文链接:https://www.haomeiwen.com/subject/blwzxhtx.html