登录  /  注册
首页 > Java > java教程 > 正文
13 张图解 Java 中的内存模型
发布: 2023-07-26 15:58:55
转载
864人浏览过
前言
  • 了解Java中的对象、变量等存放的内存区域十分重要
  • 本文将全面讲解Java虚拟机中的内存模型 & 分区,希望你们会喜欢

目录

13 张图解 Java 中的内存模型

1. 内存模型 & 分区


Java虚拟机在运行Java程序时,会管理着一块内存区域:运行时数据区

在运行时数据区里,会根据用途进行划分:

  1. Java虚拟机栈(栈区)
  2. 本地方法栈
  3. Java堆(堆区)
  4. 方法区
  5. 程序计数器

13 张图解 Java 中的内存模型

下面,我将详细介绍每个内存模型分区


2. Java堆


13 张图解 Java 中的内存模型
简介
13 张图解 Java 中的内存模型


3. Java虚拟机栈


13 张图解 Java 中的内存模型

简介
13 张图解 Java 中的内存模型


4. 本地方法栈


13 张图解 Java 中的内存模型
简介:十分类似Java虚拟机栈,与Java虚拟机区别在于:服务对象,即Java虚拟机栈为执行 Java 方法服务;本地方法栈为执行 Native方法服务


5. 方法区



13 张图解 Java 中的内存模型
简介
13 张图解 Java 中的内存模型
注:其内部包含一个运行时常量池,具体介绍如下:
13 张图解 Java 中的内存模型

6. 程序计数器


13 张图解 Java 中的内存模型
简介
13 张图解 Java 中的内存模型

7. 额外知识:直接内存


  • 定义:NIO类(JDK1.4引入)中基于通道和缓冲区的I/O方式 通过使用Native函数库 直接分配 的堆外内存
  • 特点:不受堆大小限制
不属于虚拟机运行时数据区的一部分 & 不在堆中分配
  • 应用场景:适用于频繁调用的场景
通过一个 存储在Java堆中的DirectByteBuffer对象 作为这块内存的引用 进行操作,从而避免在 Java 堆和 Native堆之间来回复制数据,提高使用性能
  • 抛出的异常:OutOfMemoryError,即与其他内存区域的总和 大于 物理内存限制


8. 总结


本文全面讲解JVM中的内存模型 & 分区,总结如下


13 张图解 Java 中的内存模型

以上就是13 张图解 Java 中的内存模型的详细内容,更多请关注php中文网其它相关文章!

相关标签:
来源:Java学习指南网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学