内存溢出 内存溢出的原因:程序在申请内存时,没有足够的内存空间 栈溢出 StackOverflowError OutOfMemoryError 堆溢出 OutOfMemoryError 直接内存 JVM 方法区溢出 Class CGLIb JSP(JSP Java ), OSGi ( ) 内存泄漏 程序在申请内存后,无法释放已申请的内存空间。 ArrayList IO 1. 2. null Java 解决方法:( ) Hash 在集合中,如果修改了对象中的那些参与计算哈希值的字段,会导致无法从集合中单独删除当前对象,造成内存泄露 相同与不同: :; 内存泄漏:该释放的对象没有释放,多见于自己使用容器保存元素的情况下。 如何避免: 内存溢出:检查代码以及设置足够的空间 内存泄漏:一定是代码有问题 往往很多情况下,内存溢出往往是内存泄漏造成的。 MAT 浅堆和深堆 : Shallow Heap 32 4 int 4 long 8 8 GC 直接 或 间接 访问到的所有对象的集合。通俗地说,就是指仅被对象所持有的对象的集合。深堆是指对象的保留集中所有的对象的浅堆大小之和。 A C D B E A A A C D ( ) A A+C+D E B A incoming outgoing JDK 命令行工具 jps JPS 进程 -m: . hello -l: package jar . -v