Think in Java 第四版 读书笔记

Think in Java 第四版 读书笔记

本书基于jdk1.5 有些许老旧

面向对象程序的挑战之一就是在问题空间的元素和解空间的对象之间创建一对一的映射。

UML统一建模语言,每个类用一个方框表示,类名在方框顶部,任何数据成员在中间,方法行为在底部;

第8章多态

  1. 子类想要获取父类的属性时,必须显式的使用super
    1. 因为子类转换为父类时,任何域的操作都是由编译器决定的,不是多态的;子类默认的域是自己的域;
  2. 什么是多态?
    1. 子类可以向上转型为父类,父类在调用传进来的方法时,无法判断是哪个子类(只有在编译中才能确定),这就是java的多态性;
  3. 向下转型时可能会出现类型转换异常ClassCastException
  4. 尽量避免子类和父类中出现同样的命名;

第九章 接口

  1. 包含抽象方法的类是抽象类
  2. 创建一个能够根据所传递的参数对象的不同而具有不同行为的方法,被称为策略设计模式;
  3. 适配器设计模式——适配器中的代码将接受你所拥有的接口,并产生你所需要的接口。(类型转换?)
  4. 同时继承一个类和多个接口时,必须把类放在前面,否则会报错;
  5. 同名同返回类型的多个继承,不会报错,会覆写;but同名不同返回类型的继承会报错;
  6. 接口可以包含域,但是是隐式static和final的
  7. 接口和工厂——复用性
  8. 优先选择类而不是接口,必要的时候才对接口进行重构;

第十章 内部类

  1. 接口内部类,因为接口中的类都是public、static的,所以可以在接口内实现外围的接口,单独进行main方法测试;
  2. 内部类单独生成一个.class文件
  3. 内部类和匿名内部类的区别P214

第十一章

  1. 通过使用泛型,可以在编译器避免将错误的类型放置到容器中;
  2. Object中默认的toString方法,打印的是类名+@+hashCode产生的该对象的散列码的无符号十六进制;

第十二章 通过异常处理错误

  1. 理解异常处理的两种模型——终止模型和回复模型。
    1. 终止模型:将错误视为不能继续运行的错误,抛出异常;
    2. 恢复模型:try块中处理程序的工作是修正错误,然后重新尝试调用;(eg:执行job失败时的多次重试、把try放在while循环中)

与C++ 的区别

  1. 数组的使用
    1. java更加安全,c++直接操作内存块;
  2. 代码作用域不同
  3. C++创建对象后,需要销毁对象,而java具有垃圾回收机制;
  4. c++没有变量初始化功能;
  5. C++中组合多个接口的类的行为是多重继承;
  6. java统一了异常处理
-------------本文结束感谢您的阅读-------------