zoukankan      html  css  js  c++  java
  • 第四章 初始化和清理

    一、构造方法

      1、默认构造方法

    二、方法重载(的方式)

      1、利用参数的顺序

      2、利用参数的数据类型

      3、利用参数的数量

      4、利用不同的返回类型(方法型别)

    三、关键字this

      1、在构造方法中调用构造方法

    • 构造函数的调用动作必须置于最起始处  Constructor call must be the first statement in a constructor
    • 所以每个构造函数内部只能调用一个其他构造函数

    四、清理:终结与垃圾回收

    五、成员初始化

    六、总结

        这一章主要讲了初始化和垃圾清理,本书对初始化的描述都是比较基础的知识,相对比较熟悉;而垃圾清理是由"垃圾回收器"自动执行的,相对比较陌生。

        "垃圾回收器"的确给程序员们们带来了极大的便利,功能也是相当的强大。它的运作方式也有多种,如:引用计数(reference counting,一种单纯、速度很慢的GC技术;计数,即是该对象被引用的次数,当计数器为0时便释放其所占用的内存)。然而为了更快的速度,它的真正原理是根据"存活于stack(栈)或static storage(静态存储空间)上"的reference而追踪到的对象,才算是尚存的对象,不被找到的对象便自然而然的变成了垃圾,这种方式下,JVM采用"自省式(adaptive)"垃圾回收机制。至于如何处处理存活对象,有"copy collectors"、"mark and sweep"、"stop-and-copy"等。不同的jdk版本会有不同的垃圾回收机制,然而本书是为Java 2而写的,如今的Java 8或许有更快、更好、更安全的"垃圾回收器"(今后有空继续研究),但不管怎样,对"垃圾回收器"还是有了一个浅显的认识。

        纵使"垃圾回收器很强大",但还是有缺点。"垃圾回收器"只知道释放那些经由new分配得来的内存,因此它不知道如何释放你这个对象所占用的"特殊内存"(对象以"对象生成"之外的方式分配了某种存储空间),这时你就需要用到finalize()函数,它能让你在"垃圾回收时刻"执行某些重要的(你自己的)清理动作。然而finalize函数(或许还有其他的一些相关函数)具体如何使用,又在何时使用,本人并没有实际操作过。

        总之,对于"垃圾回收器"算是有了一个很模糊的认识。以后有机会继续深入学习一下。

    All rights reserved please indicate the source if reprint---吓尿了的大肥鼠
  • 相关阅读:
    Spark开发环境搭建(IDEA、Scala、SVN、SBT)
    Spark源码系列:RDD repartition、coalesce 对比
    Scala:类和对象
    申请MS的FastCounter
    code generation part1some OOrelated topic! not completed
    [book]ADO.NET实用指南
    如果FC能把blog的WEB VIEW与AGG VIEW统计起来就方便多了
    Dell 1704
    O'Reilly .NET Framework Essentials, 2nd Edition
    单用户blog系统(一)
  • 原文地址:https://www.cnblogs.com/realsoul/p/5654445.html
Copyright © 2011-2022 走看看