读java编程思想(第四版)记录

1.有关final的忠告 : 尽量不要轻易地使用final来修饰方法,因为你不知道后来人是否会需要重写你的方法.final修饰的属性可以为空,但只能在构造函数中初始化它,因为一个类被创建的过程是先得到空类,若直接有:

private final int i = 5;

则先将5赋值给i再执行构造器中的语句,此时还是可以给i复制,构造函数结束后,i被锁定,不可以再被赋值.

2.为什么需要内部类 : 每个内部类都能独立的继承一个接口或者类,这也是java不能多重继承的另一个解决方法;注意,内部匿名类或者方法内的内部类只能够访问final的局部变量.

3.内部类继承 : 一个类如果继承了一个内部类,那么构造方法中要有enclosingClassReference.super();

4.内部类标识符 : java在编译的时候会将内部类标识为外部类名$内部类名,如果是匿名类,则会用数字代替

5.泛型和类型安全的容器 :

 


看上图,Collection中有List,Set,Queue三种子类,List是列表,顺序存储,set同样的对象只能存一个,Queue是一个队列的结果,先进先出,List分为ArrayList和LinkList, ArrayList查询,快,LinkList插入,删除快,Queue就是通过LinkList实现的,Set分为HashSet和TreeSet,HashSet所存数据无顺序,TreeSet要求实现Comparable接口,每次插入一个元素,会根据排序,将数据存储在红黑树的数据结构上,HashSet有子类LinkedHashSet,表示在内存中储存为链表式结构;Map有HashMap和TreeMap实现,map有键值对,键不可以重复,HashMap的Key和Value可以为Null,TreeMap不可以,TreeMap存储机制类似TreeSet;

Queue是线程安全的;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值