在实际的项目开发中,我们有时候会遇到内存溢出这种情况。如何解决这种问题呢?
一、首先我们得了解下java的内存机制。JVM里面把内存分成五个部分,分别是:
1. 程序计数器
2. Java虚拟机栈
3. 本地方法栈
4. 堆
5. 方法区
这几个存储区最主要的就是栈区和堆区,那么什么是栈什么是堆呢?说的简单点,栈里面存放的是基本的数据类型和引用,而堆里面则是存放各种对象实例的。
具体请参考更多网上资料。
二、垃圾回收机制。
1.理解哪些对象会被回收
2.回收算法
当我们遇到内存溢出的时候,先生成heap dump文件,然后通过导入分析工具进行分析,比较好的工具有jprofiler、IBM memory analyzer等等。