出处:http://blog.sina.com.cn/s/blog_7d0e75ab01016vio.html

Java提供的内存管理机制是一把双刃剑。好处是java虚拟机帮你完成了几乎所有内存管理的工作,你可以不用再去为每个new对象操作来施放内存。弊端是你将几乎不再拥有对象内存管理的权限(因为你不用做这些工作),长此以往我们就淡漠了java虚拟机管理内存的机制,而 导致我们遇到一些内存泄露的问题时却无从下手,所以了解虚拟机是这样管理内存的对于一名Java程序员来说很重要。

水平有限,不足之处欢迎拍砖。第一篇先说说Java虚拟机的内存分区和各区的职责。
Java虚拟机所管理的运行时内存包含以下五个区域:Java堆(Heap)、Java虚拟机栈(JVM Stacks)、本地方法栈(Native Method Stacks)、方法区(Method Area)、程序计数器(Register)。
Java堆(Heap):Java内存中的最大一块,所有对象实例都放在Java堆中,而对于Java堆的垃圾回收器主要管理区域,当然也是最复杂的一块,通过-Xmx和-Xms来控制大小(第二篇将专门讲述Java垃圾回收工作),各线程共享。
Java虚拟机栈(JVM Stack):存放基本数据类型(int、short、boolean、byte、double、long、float、char)和对象引用,线程私有。
本地方法栈(Native Method Stack):和虚拟机栈(JVM Stack)相似,只不过它服务于本地方法(Native Method)同样线程私有。
方法区(Method Area):存放已被加载的类信息、常量、静态变量、即时编译器编译后的代码数据等。也就是我们时常说的永久带,各线程共享。
程序计数器(Register):俗称:当前线程所执行的字节码的指示器,线程私有的。
直接内存(Direct Memory):并非java运行数据区中的部分,但是也会被Java程序用到。

转载于:https://www.cnblogs.com/dengshiwei/p/4258451.html

Java内存管理(一)--内存分区相关推荐

  1. Linux内存管理:内存描述之内存页面page

    <Linux内存管理:内存描述之内存节点node> <Linux内存管理:内存描述之内存区域zone> <Linux内存管理:内存描述之内存页面page> 目录 1 ...

  2. 内存管理之内存管理的概念

    内存管理之内存管理的概念 为什么进行内存管理 页式管理中每个页表项大小的下限如何决定 多级页表解决了什么问题,带来了什么问题 1. 内存管理的基本原理和要求 1.1 定义 操作系统对内存的划分和动态分 ...

  3. C++内存管理__内存管理(栈、堆(new/delete)、自由存储区(malloc/freee)、全局/静态存储区、常量区)!堆栈内存管理方式的区别

    内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄 ...

  4. 内存管理:内存的分配与回收

    内存管理:内存的分配与回收 1 内存的分配与回收 1.1 连续分配 1.1.1 单一连续分配 1.1.2 固定分区分配 1.1.3 动态分区分配 1.2 非连续分配 1.2.1 分段存储管理 1.2. ...

  5. 【Linux 内核 内存管理】内存管理架构 ④ ( 内存分配系统调用过程 | 用户层 malloc free | 系统调用层 brk mmap | 内核层 kmalloc | 内存管理流程 )

    文章目录 一.内存分配系统调用过程 ( 用户层 | 系统调用 | 内核层 ) 二.内存管理流程 一.内存分配系统调用过程 ( 用户层 | 系统调用 | 内核层 ) " 堆内存 " ...

  6. SAP专家培训之Netweaver ABAP内存管理和内存调优实践

    培训者:SAP成都研究院开发人员Jerry Wang 1. Understanding Memory Objects in ABAP Note1: DATA itab WITH HEADER LINE ...

  7. Linux内存管理之内存管理单元(MMU)(二)

    Linux内存管理之内存管理单元(二) 1.1.什么是MMU 在CPU内部,有一个专门的硬件单元来负责这个虚拟页面到物理页面的转换,它被被称为内存管理单元(Memory Management Unit ...

  8. Linux内存管理:内存寻址之分段机制与分页机制

    目录 Linux 内存寻址之分段机制 前言 分段到底是怎么回事? 实模式的诞生(16位处理器及寻址) 保护模式的诞生(32位处理器及寻址) IA32的内存寻址机制 寻址硬件 IA32的三种地址 MMU ...

  9. Linux内存管理:内存分配:slab分配器

    <linux内核之slob.slab.slub> <Linux内核:kmalloc()和SLOB.SLAB.SLUB内存分配器> <Linux内存管理:内存分配:slab ...

  10. Linux内存管理:内存描述之高端内存

    <Linux内存管理:内存描述之内存节点node> <Linux内存管理:内存描述之内存区域zone> <Linux内存管理:内存描述之内存页面page> < ...

最新文章

  1. 找出文件1中有而文件2中没有的数据
  2. R语言ggplot2可视化:使用scale_shape_identity函数显示pch点形状、使用geom_text函数为pch形状添加标(plot characters)
  3. 电脑怎么分屏2个显示器_程序员一台电脑装2个显示屏?因为专业
  4. Go:go语言的认识理解、安装应用、语法使用之详细攻略
  5. 页面那些位置是投放广告的最佳位置
  6. Java内部类详解(Mark)
  7. “卢十瓦”疯狂预热红米Note 8 10W“快”充不会再有了
  8. 四、物理优化(4)分区视图
  9. linux进程timer,Linux Timer 示例
  10. 安装keepalived执行make报错的解决方法
  11. socket 源码分析
  12. Ubunto 16.04设置静态ip地址
  13. java zip解压 中文_java解压ZIP 解决中文乱码 (GBK和UTF-8)
  14. 长芯微LCM1118 16 位模数转换器 P2P替代ADS1118
  15. 被全球数10万顶尖程序员关注收藏!这些JavaScript项目到底强在哪里?
  16. thinkpade575加固态_【评测】工作娱乐两相宜——ThinkPadE575!
  17. js实现base64编码和解码
  18. 计算机的逻辑电路是什么意思,CMOS逻辑电路,CMOS逻辑电路是什么意思
  19. 爬虫实例之豆瓣电影排行榜
  20. html 颜色混搭_混搭油漆调色板,教用户基本的颜色理论

热门文章

  1. 通过GitHub Actions构建和部署Jekyll网站
  2. PYPL 7 月榜单公布:Java 份额出现下降趋势
  3. 小米 9 开源内核代码,上市即开源
  4. 使用ASP.NET核心应用程序实现存储库模式和工作单元的指南
  5. linux主设备号作用是什么,linux 主设备号为1 以及/dev/null的介绍
  6. 实时检测input的长度_目标检测——TinyYOLOv3
  7. c 语言中out的作用,C语言outData+是什么意思做什么用?
  8. 头部导航菜单选中状态切换
  9. uni-app 背景图片动态设置
  10. lisp读点坐标绘多义线_AutoCAD中多义线的坐标标注