第85条 其他序列化优先于 Java 序列化 避免序列化漏洞被利用的最佳方法是永远不要反序列化任何东西 任何新系统中都没有理由使用 Java 序...
第83条 慎用延迟初始化 延迟初始化降低了初始化类或者创建实例的开销,却增加了访问被延迟初始化的域的开销 在大多数情况下,正常的初始化要优先于延...
第82条 线程安全性的文档化 一个方法中出现 synchronized 修饰符,这是个实现的细节,并不是 API 的一部分 类为了可以被多个线程...
第81条 并发工具优先于 wait 和 notify 比较常见的同步器:CountDownLatch、Semaphore、CyclicBarri...
第80条 executor、task 和 stream 优先于线程 等待一个任务集合中的任何任务或者所有任务完成-> invokeAny或inv...
第78条 同步访问共享的可变数据 同步不仅可以阻止一个线程看到对象处于不一致的状态之中,它还可以保证进入同步方法或者同步代码块的每个线程,都看到...
第79条 避免过度同步 在一个被同步的区域内部,不要调用设计成要被覆盖的方法,或者是由客户端以函数对象的形式提供的方法 死锁的例子:public...
第76条 努力使失败保持原子性 通常来讲,调用方法失败了,应该使对象保持在被调用之前的状态 实现失败原子性的方法:设计一个不可变的对象。如果对象...
第75条 在详细信息中包含捕获的失败信息 异常类型的toString方法应该尽可能多地返回有关失败原因的信息 为了捕获失败,异常的详细信息应该包...