《深入解析Android 虚拟机》——2.5 内存异常和垃圾处理
本节书摘来自异步社区《深入解析Android 虚拟机》一书中的第2章,第2.5节,作者:钟世礼著,更多章节内容可以访问云栖社区“异步社区”公众号查看 2.5 内存异常和垃圾处理 对于C和C++的开发人员来说,在内存管理领域应该能够游刃有余。在计算机系统中,内存负责维护每一个对象生命的从开始到终结。Java内存分配与管理是Java的核心技术之一,通常Java在内存分配时会涉及到以下区域。 寄存器:在程序中无法控制。栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中。堆:存放用new产生的数据。静态域:存放在对象中用static定义的静态成员。常量池:存放常量。非RAM存储:硬盘等永久存储空间。2.5.1 内存分配中的栈和堆1.栈在函数中定义的一些基本类型的变量数据,还有对象的引用变量都在函数的栈内存中分配。当在一段代码块中定义一个变量时,Java就在栈中为这个变量分配内存空间;当该变量退出该作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 栈也称为栈内存,是Java程序的运行区,是在线程创建时创建,它的生命期跟随着线程的生命期...