HeadFirst-Java-Notes

  1. chapter 16 集合与泛型(数据结构)
  1. 局部变量与引用变量在栈中,实例变量跟随类的实例化对象在堆中

  2. 实例变量是声明在类中方法之外的地方。

  3. 类的实例化对象在堆上,实例变量存在于对象所属的堆空间上。

  4. 局部变量声明在方法或方法的参数上。

  5. 所有局部变量都存在于栈上相对应的堆栈块(方法栈)中。

  6. 对象引用变量与主数据类型变量都是放在栈上。

  7. 重载构造函数的意思代表你有一个以上的构造函数且参数都不相同

chapter 16 集合与泛型(数据结构)

  1. 集合
    1. ArrayList:
      1. 不是唯一的集合
    2. TreeSet:
      1. 以有序状态保持并可防止重复。
    3. HashMap:
      1. 可用成对的name/value来保存与取出。
    4. LinkedList:
      1. 针对经常插入或删除中间元素所设计的高效率集合。(实际上ArrayList还是比较实用)
    5. HashSet:
      1. 防止重复的集合,可快速地找寻相符的元素。
    6. LinkedHashMap:
      1. 类似HashMap,但可记住元素插入的顺序,也可以设定成依照元素上次存取的先后来排序。
  2. 泛型:
    1. 泛型意味着更好的类型安全性:让编译器帮忙防止你把Dog加到一群Cat中
    2. 三件重要事情:
      1. 创建被泛型化类的实例new ArrayList<Song>()
      2. 声明与指定泛型类型的变量List<Song> songList = new ArrayList<Song>()
      3. 声明与调用取用泛型类型的方法void foo(List<Song> list) x.foo(songList)
    3. 使用泛型的类
      1. 类的声明
      2. 新增元素的方法的声明
    4. ArrayList的说明文件(“E是什么?”)
    5. ArrayList的类型参数
    6. 运用泛型的方法:
      1. 泛型的类代表类的声明用到类型参数。
      2. 泛型的方法代表方法的声明特征用到类型参数。
      3. 在方法中的类型参数有几种不同的运用方式。
        1. 使用定义在类声明的类型参数
        2. 使用未定义在类声明的类型参数

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,可以邮件至 963614756@qq.com。