java内部模型,13 张图拆解 Java 中的内存模型
前言
了解Java中的对象、变量等存放的内存区域十分重要
本文将全面讲解Java虚拟机中的内存模型 & 分区,希望你们会喜欢
示意图
目录
示意图
1. 内存模型 & 分区
Java虚拟机在运行Java程序时,会管理着一块内存区域:运行时数据区
在运行时数据区里,会根据用途进行划分:
Java虚拟机栈(栈区)
本地方法栈
Java堆(堆区)
方法区
程序计数器
示意图
下面,我将详细介绍每个内存模型分区
2. Java堆
示意图
示意图
简介
示意图
关于垃圾回收的讲解会在接下来推出的文章里讲解
3. Java虚拟机栈
示意图
示意图
简介
示意图
4. 本地方法栈
示意图
示意图
简介
十分类似Java虚拟机栈,与Java虚拟机区别在于:服务对象,即
Java虚拟机栈为执行 Java 方法服务;本地方法栈为执行 Native方法服务
5. 方法区
示意图
示意图
简介
示意图
注
其内部包含一个运行时常量池,具体介绍如下:
示意图
6. 程序计数器
示意图
示意图
简介
示意图
7. 额外知识:直接内存
定义:NIO类(JDK1.4引入)中基于通道和缓冲区的I/O方式 通过使用Native函数库 直接分配 的堆外内存
特点:不受堆大小限制
不属于虚拟机运行时数据区的一部分 & 不在堆中分配
应用场景:适用于频繁调用的场景
通过一个 存储在Java堆中的DirectByteBuffer对象 作为这块内存的引用 进行操作,从而避免在 Java 堆和 Native堆之间来回复制数据,提高使用性能
抛出的异常:OutOfMemoryError,即与其他内存区域的总和 大于 物理内存限制
8. 总结
本文全面讲解JVM中的内存模型 & 分区,总结如下
示意图
作者:Carson_Ho
链接:https://juejin.im/post/6844903677279338509
java内部模型,13 张图拆解 Java 中的内存模型相关推荐
- python构造方法与java区别_一张图秒懂Java和Python的区别,你知道吗?
对于程序员的语言千千万JAVA\C\C++\PHP\Python不同的程序员使用着不同的语言,做着功能相似需求却不同的产品. 但是最近Python在人工智能的推动下突然出现在人们的面前,其实和Java ...
- python和java的区别-一张图秒懂Java和Python的区别,你知道吗?
对于程序员的语言千千万JAVACC++PHPPython不同的程序员使用着不同的语言,做着功能相似需求却不同的产品. 但是最近Python在人工智能的推动下突然出现在人们的面前,其实和Java一样Py ...
- 了解Java中的内存模型只需13张图!
前言 了解Java中的对象.变量等存放的内存区域十分重要 本文将全面讲解Java虚拟机中的内存模型 & 分区,希望你们会喜欢 目录 1. 内存模型 & 分区 Java虚拟机在运行Jav ...
- 一图胜千言,8 张图理解 Java
一图胜千言,8 张图理解 Java 一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选.如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟. 1.字符 ...
- 一周极客热文:8张图理解Java
图:equals()方法.hashCode()方法的区别 HashCode被设计用来提高性能.equals()方法与hashCode()方法的区别在于: 如果两个对象相等(equal),那么他们一定有 ...
- Java虚拟机中的内存模型?JSP常用的动作标签及作用? 如何防止表单重复提交问题? JSP四大作用域及请求范围? 分别说出http,https,ftp,talnet的默认端口?
文章目录 一 ,Java虚拟机中的内存模型JVM? 1,Java堆 2,方法区 3,Java栈 4,本地方法栈 问题扩展: 二 , JSP常用的动作标签及作用 (1)问题分析: (2)核心答案讲解: ...
- Java 垃圾回收机制,13张图给你讲清楚!
作者:Rhys_Lee 等等等 https://blog.csdn.net/zl1zl2zl3/article/details/90904088 什么是自动垃圾回收? 第一步:标记 第二步:清除 压缩 ...
- 用8张图理解Java
一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选.如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟. 1.字符串不变性 下面这张图展示了这段代码做 ...
- java gc日志乱码_6000+字,30+张图。JAVA线上故障排查全套路总结。
fredalxin|https://sourl.cn/duWZhd 线上故障主要会包括 cpu.磁盘.内存以及 网络 问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次 ...
最新文章
- 基于GAN模型的生成人脸重构、返老还童、看见前世今生(Age Progression/Regression)
- 独家 | 如何创建用于离线估算业务指标的测试集?(附代码链接)
- python中的zip()函数和map()函数
- 抛出错误_如何找到抛出ORA00933错误的SQL
- dpdk18.11 收发包流程分析
- 拆分器SplitContainer控件
- hadoop之BlockPoolManager源码分析
- Python+request+ smtplib 测试结果html报告邮件发送(上)《五》
- RHEL5.9下cacti监控的部署详解
- 序列化和反序列化(三)——父类的序列化
- 真实!数据分析师到底是做什么的?
- 从键盘输入一个字符串a,并在串a中的最大元素后面插入字符串b(b[]=“ab”),输出字符串a。
- 使用原型骨架创建Maven项目时遇到Could not transfer metadata org.apache.maven.plugins的解决方案
- vscode 中python不能跳转问题
- 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第四章 使用SCAPY掌控网络(2)Scapy实现ARP缓存投毒
- C语言随机点名器程序
- springboot项目通过gradle制作webjars
- Jetson NX YOLOV目标检测学习笔记1----CV调用USB摄像头
- git gerrit 拉取本地服务器代码出错Unable to negotiate with XX.XX.XX.XX port XX: no matching key exchange me
- 当WPS文件保存并关闭后恢复的方法。
热门文章
- 现就本人在初学MFC中遇到的问题以及解决方法做一下总结,软件环境为VS2008
- 《华为机试》刷题之HJ58 输入n个整数,输出其中最小的k个
- 解决:Gitlab上出现“You won't be able to pull or push project code via SSH until you add an SSH key to you”
- WiFi6模块AP6275S
- 对Github中Organization内几个概念的理解
- 四川计算机二级时间安排,2020年3月四川计算机二级考试时间
- 话说 synchronized
- js导出PPT -- pptxgen使用方法
- 中国“量子霸权”成果:比最快超级计算机快一百万亿倍
- VR社交应用Rec Room再获1.45亿美元融资,用户突破3700万