
06 读书笔记 -> Effective Java
文章平均质量分 87
水白
一个爱好计算机,做事认真踏实的人!
展开
-
第9章 异常
Item 57 只针对异常的情况才使用异常 try-catch滥用,其负面影响是: 异常机制初衷是针对非正常情况,所有JVM默认不对其进行优化。比如,遍历数组每次都加入try-catch,性能可能慢2倍。try-catch块,会阻止JVM对其中代码的优化悄悄掩盖隐藏的bug 在“有状态”情况下控制异常: 提供状态测试方法:如,遍历时,提供hasNext方法,用于看是否有ne原创 2013-05-12 16:17:15 · 574 阅读 · 0 评论 -
第11章 序列化
条款 74:谨慎实现Serializable接口 1 实现Serializable接口的代价: A 一旦该类被发布,大大降低了该类改变的灵活性 实现Serializable接口后,字节流编码成了导出API的一部分; 如果接受了默认序列化形式,则类中私有和包级私有的实例域都成为导出API的一部分,不能信息隐藏 类的演变受到限制:UID B 增加了bug和漏洞的可能原创 2013-05-12 16:19:17 · 584 阅读 · 0 评论 -
第8章 通用程序设计
Item 45 局部变量作用域最小化 局部变量的定义,应该在第一次使用它的地方声明,而不总是在代码的开头 Item 46 for-each循环优先使用 JDK1.5后引入for-each循环,完全隐藏了迭代器/索引变量,避免了混乱和出错的可能 for-each优势: 简洁预防bug性能也不差 以下情况无法使用: 遍历集合对某个元素操作时(主要是想利用迭代原创 2013-05-12 14:20:16 · 593 阅读 · 0 评论 -
第10章 并发
Item 66 同步访问共享的可变数据 1 Java语言规范保证:读/写一个变量是原子的,除非该变量是long/double 2 虽然语言保证了线程读取原子数据的时候不会看到任意数值,但并不保证一个线程的写入值对另一个线程可见。 3 使用Thread.stop会导致数据遭到失败。要阻止一个线程妨碍另一个线程,建议让第一个线程轮询,共享一个boolean型域。 4 p230原创 2013-05-12 16:18:46 · 618 阅读 · 0 评论