《深入理解 JVM 虚拟机》第三章 垃圾收集器与内存分配策略
3.1 概述
托管语言和托管运行时系统不仅能提升程序安全性,还可以通过对操作系统和硬件架构的安全性来提升代码的灵活性。几乎所有的现代编程语言都使用动态内存分配,即允许进程在运行时分配或者释放无法在编译期确定大小的对象,且允许对象的存活时间超出创建这些对象的方法。堆分配是十分重要的,它允许开发者:
在运行时动态确定新创建对象的大小
定义和使用具有递归特征的数据结构,如链表、树和映射(map)
向父过程返回新创建的对象,例如工厂方法
将一个函数作为另一个函数的返回值,例如函数式语言中的闭包(closure)或者悬挂(suspension)
评论