本地方法栈

  • 服务的对象是jvm执行的native方法,而虚拟机栈服务的对象
  • 当线程调用本地方法时,虚拟机会保持java栈不变,不再在线程的java栈中压入新的栈帧,虚拟机只是简单的动态连接并直接调用指定的本地方法。
  • Sun HotSpot 虚拟机直接把Java虚拟机栈和本地方法栈合二为一。
  • 与Java虚拟机栈一样,本地方法栈也会抛出StackOverflowError和OutOfMemoryError异常。
  • 程序计数器,虚拟机栈,本地方法栈都是线程私有的,不需要考虑线程安全问题。

Heap 堆

  • Java堆(Java Heap):是被所有线程所共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是:存放对象实例,几乎所有的对象实例都在这里分配内存。
  • 通过 new 关键字,创建对象都会使用堆内存
  • 它是线程共享的,堆中对象都需要考虑线程安全的问题
  • 有垃圾回收机制
  • (堆中不再被引用的对象会被当作垃圾回收)

堆内存溢出

如果在堆中没有完成实例分
配。并且堆也无法扩展时,将会抛出 OutOfMemoryError 异常。

堆内存诊断

  1. jps 工具
    查看当前系统中有哪些 java 进程
  2. jmap 工具
    查看堆内存占用情况 jmap - heap 进程id
  3. jconsole 工具
    图形界面的,多功能的监测工具,可以连续监测

JVM内存结构|本地方法栈和堆相关推荐

  1. 【JVM】本地方法栈与堆与方法区

    文章目录 1. 本地方法栈 2. 堆 3. 方法区 1. 本地方法栈 本地方法栈和虚拟机栈有点类似,均具有线程隔离的特点以及都能抛出StackOverflowError和OutOfMemoryErro ...

  2. java:JVM内存结构初步理解入门:堆、栈、方法区(浅显通俗易懂自记)

    自己整理的一些资料以及自己的一些理解,希望记下来的不是高大上而晦涩的概念,将自己此时此刻的理解最大程度地刻模,以便将来重温知新. JVM内存结构最简单可以初步分为:1栈 2堆 3方法区 4 程序计数器 ...

  3. 12.JDK1.8 JVM运行时数据区域概览、各区域介绍、程序计数器、Java虚拟机栈、本地方法栈、堆、堆空间内存分配(默认情况下)、字符串常量池、元数据区、jvm参数配置

    12.JDK1.8 JVM运行时数据区域概览 12.1.JDK1.8 JVM运行时数据区域概览 12.2.各区域介绍 12.3.各区域介绍 12.3.1.程序计数器 12.3.2.Java虚拟机栈 1 ...

  4. JVM之本地方法栈Naitve Method Stack

    JVM之本地方法栈Naitve Method Stack 目录: JVM体系结构概览 JVM之本地方法栈解析 1. JVM体系结构概览 2. JVM之本地方法栈解析 本地接口的作用是融合不同的编程语言 ...

  5. 欧尼酱讲JVM(13)——本地方法栈

    位置图解 本地方法栈在运行时数据区中,三个灰色的部分是线程私有的. 本地方法栈作用 Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用. 本地方法栈是线程私有了,允许被线程 ...

  6. Java 内存模型和 JVM 内存结构真不是一回事

    这两个概念估计有不少人会混淆,它们都可以说是 JVM 规范的一部分,但真不是一回事!它们描述和解决的是不同问题,简单来说, Java 内存模型,描述的是多线程允许的行为 JVM 内存结构,描述的是线程 ...

  7. jvm内存结构_浅谈JVM内存结构

    JVM 可以分为 5 个部分,分别是: 类加载器(Class Loader):加载字节码文件到内存. 运行时数据区(Runtime Data Area):JVM 核心内存空间结构模型. 执行引擎(Ex ...

  8. 学习笔记:Java虚拟机——JVM内存结构、垃圾回收、类加载与字节码技术

    学习视频来源:https://www.bilibili.com/video/BV1yE411Z7AP Java类加载机制与ClassLoader详解推荐文章:https://yichun.blog.c ...

  9. 最通俗易懂明明白白的jvm内存结构

    引用: https://blog.csdn.net/laomo_bible/article/details/83067810 Java内存结构是每个java程序员必须掌握理解的,这是Java的核心基础 ...

最新文章

  1. Win7封装无损廋身清单
  2. css 透明_css属性transparent有时候并不是透明的
  3. xampp 下安装mysql-python
  4. 软件设计的火花——Brooks新作及《人月神话》三十五周年讨论会纪要
  5. Java项目课程05:系统设计
  6. 月薪23333元!淘宝招募“首席鉴雕官”,只需天天哈哈哈哈哈
  7. arduino 舵机接线图_用fritzing绘制arduino硬件连线图
  8. 编程语言对比 数组
  9. 大数据_MapperReduce_Hbase配置参数说明_以及部分源码说明---Hbase工作笔记0031
  10. Git-本地库与中央库
  11. C# WinForm 只运行一个程序实例
  12. 检查Mysql引擎的方法
  13. calamari构架图
  14. java简单的学生管理系统界面_java 学生信息管理系统(图形界面)
  15. tcl语言读取文件一行_TCL语言(九) 路径和文件
  16. loj3059/bzoj5494/洛谷P5294 [HNOI2019]序列 单调栈+主席树
  17. 【.NET】用Aspose.Words for .NET动态生成word文档中的数据表格
  18. Velocity User Guide 用户手册
  19. mysql 从第几个字符串开始截取_mysql字符串截取
  20. android 手势识别代码

热门文章

  1. Enthought Canopy中第三方软件包的安装(package manager中不含的包)
  2. 面试中 项目遇见的难点答案_2019 百度、头条、小米、360、网易、拼多多等公司 Android 社招面试心得...
  3. 在 SAP CRM Fiori 应用上给 Opportunity 订单添加 note 的后台执行明细
  4. 介绍一个 Windows 10 资源管理器的替代工具 - Explorer++
  5. Angular form 官网文档的学习笔记:Angular两种实现form的方式
  6. SAP Spartacus category navigation按钮之间的间隔问题
  7. SAP Spartacus里的product carousel控件的实现cx-product-carousel
  8. 通过一个最简单的例子,理解Angular rxjs里的Observable对象的pipe方法
  9. SAP C4C的扩展字段添加到UI之后,还需要额外的步骤,才能将其添加到OData里
  10. SAP UI5 this.oModel.createBindingContext will trigger odata request