1. 接口中所有的域都为static final,所有的成员都为public。
2. 接口中的域不是接口的一部分,他们的值被存储在接口的静态存储区域内。
3. 当实现某个接口时,不需要实现嵌套在其内部的任何接口。( thinking in java P186)。
4. 当某个外部类的对象创建了一个内部类的对象时,此内部类对象必定会秘密地捕获一个指向那个外部类对象的引用。(所以在android中ViewHolder类应该设置为static,这样就不会使其获得外部类的引用)。
5. .this和.new (P193)。
6. 内部类的作用(P205)。
7. 内部类的继承。(P212)。
8. 内部类不会被覆盖,想要覆盖必须要在子类中明确地继承这个内部类。(P213)。
9. 内部类分为四种:
(1)成员内部类
(2)静态内部类
(3)局部内部类
(4)匿名内部类
局部内部类和匿名内部类的区别是局部内部类会有一个已命名的构造函数(P215)。
10. 接口中可以写一个类。(P202)。
11. JAVA中的“容器”有两大类:
(1)Collection
(2)Map
12.
String[] str = new String[]{"a","b","c"}
List<String> mList = new ArrayList<String>(Arrays.asList(str)) 和 List<String> mList = Arrays.asList(str)是不一样的,前者修改mList不会对数组str造成影响,后者会。(P220)。
13. Collection有一个iterator()方法可以返回一个iterator对象,用来进行遍历,iterator有两个方法,hasNext()和next()。iterator有一个子类,ListIterator,用于各种list的访问,功能更加强大。
14. Queue的方法(P228)。
15. TreeSet将元素存储在一个红黑树中,HashSet将元素用散列函数来存储。TreeSet是有顺序的,HashSet是没有顺序的。
16. Map的KeySet()会返回一个set,里面存储的是Map的Key。entrySet()方法返回一个set,存储所有的值。
17. PriorityQueue。具有优先级的Queue。对于Integer,数值越小优先级越高,对于String,字母越小优先级越高(ABCDE.....)空格优先级比字母高。
18. Collection实现了Iterable接口。实现Collection接口需要实现很多方法,所以可以选择继承AbstractCollection,只需要实现一些必要的方法就可以。(P240)。
19. Iterable接口可以和foreach一起使用。(P242,243)。Map并没有实现Iterable接口。
20. 虽然String是Object的子类,但是List<String> 不是List<Object>的子类。
21. 当异常抛出时,异常处理机制将负责搜寻参数与异常类型相匹配的第一个处理程序。
22. 异常处理模型有两种:
(1)终止模型。
(2)恢复模型。
(P251)。
23. RuntimeException继承的异常不需要异常说明就可以抛出。
24. 栈轨迹。(P257)。
25. 重抛异常会把异常抛给上一级环境中的异常处理程序,同一个try块的后续catch子句将被忽略。
26. fillInStackTrace()。(P259)。
27. 异常链。(P261)。
28. try块放入while()循环中。(P265)。
最近笔者感觉不是很顺,处处都有不如意的地方,看代码也没什么劲,不过为了自己和自己在乎的人,还是会努力下去的,希望能像以前一样快乐的coding。