一、JVM内存区域、内存中的对象、内存溢出异常

一、JVM内存区域、内存中的对象、内存溢出异常

一、运行时数据区域

1.1 程序计数器

一、JVM内存区域、内存中的对象、内存溢出异常

1.2 Java虚拟机栈

一、JVM内存区域、内存中的对象、内存溢出异常

1.3 本地方法栈

一、JVM内存区域、内存中的对象、内存溢出异常

1.4 Java堆

一、JVM内存区域、内存中的对象、内存溢出异常

1.5 方法区

一、JVM内存区域、内存中的对象、内存溢出异常

1.6 运行时常量池

一、JVM内存区域、内存中的对象、内存溢出异常

1.6 直接内存

一、JVM内存区域、内存中的对象、内存溢出异常

二、虚拟机中的Java对象

2.1 对象的创建过程

一、JVM内存区域、内存中的对象、内存溢出异常
一、JVM内存区域、内存中的对象、内存溢出异常
一、JVM内存区域、内存中的对象、内存溢出异常
一、JVM内存区域、内存中的对象、内存溢出异常

2.2 对象的内存布局

一、JVM内存区域、内存中的对象、内存溢出异常
一、JVM内存区域、内存中的对象、内存溢出异常

2.3 对象的访问定位

一、JVM内存区域、内存中的对象、内存溢出异常
一、JVM内存区域、内存中的对象、内存溢出异常

三、内存溢出

1、内存泄漏memory leak :
是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。

2、内存溢出 out of memory :
指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够用,此时就会报错OOM,即所谓的内存溢出。
更多关于内存泄漏和内存溢出

3.1 堆内存溢出

一、JVM内存区域、内存中的对象、内存溢出异常
一、JVM内存区域、内存中的对象、内存溢出异常

3.2 虚拟机栈和本地方法栈溢出

一、JVM内存区域、内存中的对象、内存溢出异常
一、JVM内存区域、内存中的对象、内存溢出异常
一、JVM内存区域、内存中的对象、内存溢出异常
一、JVM内存区域、内存中的对象、内存溢出异常

3.3 方法区和运行时常量池溢出

一、JVM内存区域、内存中的对象、内存溢出异常
一、JVM内存区域、内存中的对象、内存溢出异常