DD和DU异常(如果我没记错的话,我使用FindBugs,并且消息有些不同),是指为从未读取的局部变量分配值,通常是因为在读取之前将其重新分配了另一个值。典型的情况
null
是在声明变量时对其进行初始化。分配
null
给局部变量以“辅助”垃圾收集器是一个神话。PMD让您知道这只是适得其反。在局部变量上指定final对优化器来说 应该 非常有用,但是我没有任何具体实例说明当前JIT充分利用了这一提示。我发现它在推理我自己的代码的正确性方面很有用。
从以下方面指定接口:好的, 接口 是一种很好的设计实践。您可以轻松更改集合的实现,而完全不会影响调用者。这就是接口的全部意义。
我想不出有很多情况下,呼叫者就 需要 一个
linkedList
,因为它不公开不是由一些接口声明的API。如果客户端依赖于该API,则可以通过正确的接口使用它。块级同步可以使关键部分更小,从而可以同时进行尽可能多的工作。也许更重要的是,它允许使用由封闭对象私有控制的锁定对象。这样,您可以保证不会发生死锁。使用实例本身作为锁,任何人都可以错误地对其进行同步,从而导致死锁。
类型的操作数
short
可int
在任何操作中提升。该规则让您知道此促销正在进行中,您最好使用int
。但是,使用short
类型可以节省内存,因此如果它是实例成员,则可能会忽略该规则。



