论坛首页 入门技术论坛

初识对象的创建、使用和生命周期

浏览 1236 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-04-05  
以前一直认为这块知识不重要,至少是目前不重要。不过既然要往深处学习,这块应该是必须的吧。

这次只是把书上看到的一些自己认为重要的地方做个摘录,以后深入学习以后再做补充。



对象的数据位于何处?

1、诸如像C++之类的一些语言认为效率控制是最重要的议题,所以给程序员提供了选择的余地。

为了执行的速度即效率,可以在程序编写的时候就确定对象的存储空间和生命周期。这可以通过将对象置于堆栈或静态存储区域内来实现。(对计算机硬件方面,实在是不感兴趣,所以这句话读了暂时也没什么深刻的体会)这种方式在灵活性上欠佳。



2、第二种方式成为堆(heap)的内存池中动态的创建对象。java运用的便是这一类,光看“动态”两个字也觉得这个比较高级。

在这种方式中,直到运行到相关代码被执行的那一刻才知道需要创建多少对象?生命周期如何?具体类型是什么?毋庸置疑,好处是灵活性大大提高,而以此作为代价的是效率的降低。



怎样控制对象的生命周期?

1、在堆栈(C++)那类上创建的对象,编译器可以确定对象的存活时间,并可以自动销毁。C++必须通过编程的方式来确定何时销毁对象,这可能会因为不正确的处理而导致内存泄露。



2、在堆(java)上创建的对象,编译器对它的生命周期一无所知。java提供了被称为“垃圾回收器”的机制,可以发现对象何时不再被使用,并继而销毁它。就是因为有了这个“器”,所以我从来没有考虑过回收这方面的问题,从来不搞“计划生育”。然而java使用这个“器”的重要意义其实在于避免了暗藏的“内存泄露”问题。

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics