对象的创建
前提:
在使用对象时,最关键的问题之一便是它们的生成和销毁方式,每个对象为了生存都需要资源,尤其是内存。
在相对简单的编程情况下,你创建了对象,根据需要使用它,然后它应该被销毁,然而,你很可能遇到相对复杂的情况。
提出问题:
当处理完某个对象之后,系统某个其他部分可能还在处理它,那你怎么才能知道何时销毁这些对象呢?
解决问题:
方式一:
为了追求最大的执行速度,对象的存储空间和生命周期可以在编写程序时确定,这可以通过将对象置于堆栈或静态存储区域来实现。
优点:
加快了执行速度;
缺点:
牺牲了灵活性,必须在编写程序时知道对象确切的数量、生命周期和类型。
方式二:
在被称为堆的内存池中动态的创建对象。在堆栈中创建存储空间和释放存储空间通常各需要一条汇编指令即可,分别对应将栈顶指针向下移动和将栈顶指针向上移动。创建堆存储空间的时间依赖于存储机制的设计。
优点:
如果需要一个新对象,可以在需要的时刻直接在堆中创建,不需要提前知道对象的确切数量、生命周期和类型。
缺点:
因为存储空间实在运行时被动态管理的,所以需要大量的时间再队中分配存储空间,这可能要远远大于在堆栈中创建存储空间的时间,总的来说,就是执行速度慢。
总结:
- Java完全采用了动态内存分配方式,每当想要创建新对象时,就要使用new关键字来构建此对象的动态实例。
生命周期
——2017.2.21 16:23 未完待续