您的位置:首页 > 编程语言 > Java开发

《深入理解Java虚拟机》学习小记一之自动内存管理机制(一)

2015-06-09 17:17 393 查看
目录[-]

Java内存区域与内存溢出异常

一、概要

二、运行时数据区域

2.1程序计数器

2.2虚拟机栈

2.3本地方法栈

2.4堆

2.5方法区

2.6运行时常量池

三、对象访问

四、OutOfMemoryError异常

4.1Java堆溢出

4.2虚拟机栈溢出

4.3 方法区溢出

4.4 运行时常量池溢出

五、小结


Java内存区域与内存溢出异常


一、概要

我们可以带着以下几个问题去学习自动内存管理机制,罗列如下:

什么操作可能导致内存溢出?
有哪些种类的内存溢出?
都是在内存的哪些区域溢出?
垃圾收集有哪些原则?
有哪些垃圾收集算法及其实现?
新生代和老年代的回收策略如何?
各种内存相关的JVM参数是什么意思?

本文章主要总结问题1、问题2和问题3






二、运行时数据区域

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,如下图所示





其中虚拟机栈、本地方法栈和程序技术器是线程私有的,方法区和堆是线程共享的.

2.1程序计数器

作用:当前线程所执行的字节码的行号指示器


五、小结

主要介绍虚拟机里面的内存是如何划分的,哪部分区域、什么样的代码和操作可能导致内存溢出异常。

---------------------------------全文完------------------------------

摘自《深入理解Java虚拟机》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: