浏览 1236 次
锁定老帖子 主题:初识对象的创建、使用和生命周期
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-05
这次只是把书上看到的一些自己认为重要的地方做个摘录,以后深入学习以后再做补充。 对象的数据位于何处? 1、诸如像C++之类的一些语言认为效率控制是最重要的议题,所以给程序员提供了选择的余地。 为了执行的速度即效率,可以在程序编写的时候就确定对象的存储空间和生命周期。这可以通过将对象置于堆栈或静态存储区域内来实现。(对计算机硬件方面,实在是不感兴趣,所以这句话读了暂时也没什么深刻的体会)这种方式在灵活性上欠佳。 2、第二种方式成为堆(heap)的内存池中动态的创建对象。java运用的便是这一类,光看“动态”两个字也觉得这个比较高级。 在这种方式中,直到运行到相关代码被执行的那一刻才知道需要创建多少对象?生命周期如何?具体类型是什么?毋庸置疑,好处是灵活性大大提高,而以此作为代价的是效率的降低。 怎样控制对象的生命周期? 1、在堆栈(C++)那类上创建的对象,编译器可以确定对象的存活时间,并可以自动销毁。C++必须通过编程的方式来确定何时销毁对象,这可能会因为不正确的处理而导致内存泄露。 2、在堆(java)上创建的对象,编译器对它的生命周期一无所知。java提供了被称为“垃圾回收器”的机制,可以发现对象何时不再被使用,并继而销毁它。就是因为有了这个“器”,所以我从来没有考虑过回收这方面的问题,从来不搞“计划生育”。然而java使用这个“器”的重要意义其实在于避免了暗藏的“内存泄露”问题。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |