JVM内存结构|本地方法栈和堆
本地方法栈
- 服务的对象是jvm执行的native方法,而虚拟机栈服务的对象
- 当线程调用本地方法时,虚拟机会保持java栈不变,不再在线程的java栈中压入新的栈帧,虚拟机只是简单的动态连接并直接调用指定的本地方法。
- Sun HotSpot 虚拟机直接把Java虚拟机栈和本地方法栈合二为一。
- 与Java虚拟机栈一样,本地方法栈也会抛出StackOverflowError和OutOfMemoryError异常。
- 程序计数器,虚拟机栈,本地方法栈都是线程私有的,不需要考虑线程安全问题。
堆
Heap 堆
- Java堆(Java Heap):是被所有线程所共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是:存放对象实例,几乎所有的对象实例都在这里分配内存。
- 通过 new 关键字,创建对象都会使用堆内存
- 它是线程共享的,堆中对象都需要考虑线程安全的问题
- 有垃圾回收机制
- (堆中不再被引用的对象会被当作垃圾回收)
堆内存溢出
如果在堆中没有完成实例分
配。并且堆也无法扩展时,将会抛出 OutOfMemoryError 异常。
堆内存诊断
- jps 工具
查看当前系统中有哪些 java 进程 - jmap 工具
查看堆内存占用情况 jmap - heap 进程id - jconsole 工具
图形界面的,多功能的监测工具,可以连续监测
JVM内存结构|本地方法栈和堆相关推荐
- 【JVM】本地方法栈与堆与方法区
文章目录 1. 本地方法栈 2. 堆 3. 方法区 1. 本地方法栈 本地方法栈和虚拟机栈有点类似,均具有线程隔离的特点以及都能抛出StackOverflowError和OutOfMemoryErro ...
- java:JVM内存结构初步理解入门:堆、栈、方法区(浅显通俗易懂自记)
自己整理的一些资料以及自己的一些理解,希望记下来的不是高大上而晦涩的概念,将自己此时此刻的理解最大程度地刻模,以便将来重温知新. JVM内存结构最简单可以初步分为:1栈 2堆 3方法区 4 程序计数器 ...
- 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 ...
- JVM之本地方法栈Naitve Method Stack
JVM之本地方法栈Naitve Method Stack 目录: JVM体系结构概览 JVM之本地方法栈解析 1. JVM体系结构概览 2. JVM之本地方法栈解析 本地接口的作用是融合不同的编程语言 ...
- 欧尼酱讲JVM(13)——本地方法栈
位置图解 本地方法栈在运行时数据区中,三个灰色的部分是线程私有的. 本地方法栈作用 Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用. 本地方法栈是线程私有了,允许被线程 ...
- Java 内存模型和 JVM 内存结构真不是一回事
这两个概念估计有不少人会混淆,它们都可以说是 JVM 规范的一部分,但真不是一回事!它们描述和解决的是不同问题,简单来说, Java 内存模型,描述的是多线程允许的行为 JVM 内存结构,描述的是线程 ...
- jvm内存结构_浅谈JVM内存结构
JVM 可以分为 5 个部分,分别是: 类加载器(Class Loader):加载字节码文件到内存. 运行时数据区(Runtime Data Area):JVM 核心内存空间结构模型. 执行引擎(Ex ...
- 学习笔记:Java虚拟机——JVM内存结构、垃圾回收、类加载与字节码技术
学习视频来源:https://www.bilibili.com/video/BV1yE411Z7AP Java类加载机制与ClassLoader详解推荐文章:https://yichun.blog.c ...
- 最通俗易懂明明白白的jvm内存结构
引用: https://blog.csdn.net/laomo_bible/article/details/83067810 Java内存结构是每个java程序员必须掌握理解的,这是Java的核心基础 ...
最新文章
- Win7封装无损廋身清单
- css 透明_css属性transparent有时候并不是透明的
- xampp 下安装mysql-python
- 软件设计的火花——Brooks新作及《人月神话》三十五周年讨论会纪要
- Java项目课程05:系统设计
- 月薪23333元!淘宝招募“首席鉴雕官”,只需天天哈哈哈哈哈
- arduino 舵机接线图_用fritzing绘制arduino硬件连线图
- 编程语言对比 数组
- 大数据_MapperReduce_Hbase配置参数说明_以及部分源码说明---Hbase工作笔记0031
- Git-本地库与中央库
- C# WinForm 只运行一个程序实例
- 检查Mysql引擎的方法
- calamari构架图
- java简单的学生管理系统界面_java 学生信息管理系统(图形界面)
- tcl语言读取文件一行_TCL语言(九) 路径和文件
- loj3059/bzoj5494/洛谷P5294 [HNOI2019]序列 单调栈+主席树
- 【.NET】用Aspose.Words for .NET动态生成word文档中的数据表格
- Velocity User Guide 用户手册
- mysql 从第几个字符串开始截取_mysql字符串截取
- android 手势识别代码
热门文章
- Enthought Canopy中第三方软件包的安装(package manager中不含的包)
- 面试中 项目遇见的难点答案_2019 百度、头条、小米、360、网易、拼多多等公司 Android 社招面试心得...
- 在 SAP CRM Fiori 应用上给 Opportunity 订单添加 note 的后台执行明细
- 介绍一个 Windows 10 资源管理器的替代工具 - Explorer++
- Angular form 官网文档的学习笔记:Angular两种实现form的方式
- SAP Spartacus category navigation按钮之间的间隔问题
- SAP Spartacus里的product carousel控件的实现cx-product-carousel
- 通过一个最简单的例子,理解Angular rxjs里的Observable对象的pipe方法
- SAP C4C的扩展字段添加到UI之后,还需要额外的步骤,才能将其添加到OData里
- SAP UI5 this.oModel.createBindingContext will trigger odata request