文章目录
- 1.1 概述
- 1. 2 运行时数据区域
- 1. 3 HotSpot虚拟机对象探秘
- 1. 4 作业:OutOfMemoryError异常体验
1.1 概述
对于Java程序员来说,再虚拟机自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄露和内存溢出的问题,看起来由虚拟机管理内存一切都很美好。不过正是因为Java程序员把控制内存的权利交给来Java虚拟机,一旦出现内存泄露方面的问题,如果不了解虚拟机是怎样使用内存的,那排查错误、修正问题将会称为意向艰难的工作。
1. 2 运行时数据区域
java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干不同的数据区域。这些区域各有用途,以及创建和销毁的时间,有的区域会随着虚拟机进程的启动而一直存在,有些区域是依赖用户线程的启动和结束而建立和销毁的。
- 程序计数器(Propgram Counter Register)
它是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。(字节码解释器工作时