程序员对堆对象的生命具有完全的控制权。我们常常需要这样的对象,比如,我们需要创建一个对象,能够被多个函数所访问,但是又不想使其成为全局的,那么这个时候创建一个堆对象无疑是良好的选择,然后在各个函数之间传递这个堆对象的指针,便可以实现对该对象的共享。另外,相比于栈空间,堆的容量要大得多。实际上,当物理内存不够时,如果这时还需要生成新的堆对象,通常不会产生运行时错误,而是系统会使用虚拟内存来扩展实际的物理内存。
--控制生命期
如果,你知道空间的大小的最大限制,而且也知道其作用域仅限于函数范围内,使用栈是很简单的事。但是,如果,你不能够确定一个变量的空间大小,也不能够明确这个变量的作用域仅限于这个函数以内,那还使用对比较安全。
类的共享牵涉到程序效率问题,如果是一种树、环、链或是复杂的对象集,使用类复制很不现实,而且资源效率都很成问题。
阅读(2763) | 评论(0) | 转发(0) |