《java编程思想》读书笔记
2019, Feb 22
第13章 字符串
- String对象是不可变的。
- java编译器在操作String的时,有时会将自动其优化为StringBuilder,但这种优化并不可靠。所以最好显示地使用StringBuilder。
- StringBuilder是JavaSE5以后引入的,此前用的是StringBuffer。StringBuffer是线程安全的,StringBuilder不是。StringBuffer开销大。
第17章 容器深入研究
HashMap | 推荐使用,插入和查询的开销固定,可以设置容量和负载因子 |
---|---|
LinkedHashMap | 用链表维护内部秩序 |
TreeMap | 红黑树实现,有子树,有顺序 |
WeakHashMap | 允许释放映射所指向的对象 |
ConcurrentHashMap | 线程安全的Map |
IdentityHashMap | 使用==代替equals()对“键”进行比较的散列映射 |
- 如果要使用自己定义的类做HashMap的“键”,必须重写其HashCode()和equals()方法。 Hashtable、Vector、Stack都是遗留类,最好不要在新的程序中使用。
第21章 并发
- Thread.yeild()的调用是对线程调度器的一种建议,它在声明“我已经执行完生命周期中最重要的部分了,此刻正是切换给其他任务执行一段时间的大好时机”。