一、概述
内存在计算机中占据着至关重要的地位,任何运行时的程序或者数据都需要依靠内存作为存储介质,否则程序将无法正常运行。与C和C++相比,使用Java语言编写的程序并不需要显示的为每一个对象编写对应的内存分配和内存回收等相关的函数,这主要是得益于JVM的自动内存管理机制,使得Java开发人员可以从频繁的体力劳动中解放出来,只关注与自身的业务即可。
尽管JVM的自动内存管理机制大大提高了Java开发人员的编程效率,甚至从某种意义上说降低了内存泄漏和内存溢出的风险,但是Java开发人员过度的依赖于“自动”那么将是一场灾难。最严重的就是会弱化Java开发人员在程序出现内存溢出时定位问题和解决问题的能力。在此需要提醒大家,千万不要被JVM自动内存管理机制牵着鼻子走,所以了解JVM究竟是如何管理内存后,才能在出现OutOfMemoryError时,快速地根据异常日志单位问题和解决问题。
对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又