数据流异常分析:已找到
“DD”-变量“变量”异常
(行“n1”-“n2”)。
数据流异常分析:已找到
“DU”-变量“变量”异常
(行“n1”-“n2”)。
DD 和 DU 听起来很熟悉...我想说的是与最弱的前后条件相关的测试和分析之类的事情,但我不记得具体细节了。
NullAssignment:将对象分配给
null 是一种代码味道。考虑
重构。
不会将对象设置为null
如果该对象是本地对象(未在方法外部使用),则协助垃圾收集?或者这是一个神话?
MethodArgumentCouldBeFinal:参数
'param' 未分配,可能是
宣布最终
LocalVariableCouldBeFinal:本地
可以声明变量“变量”
最终的
使用有什么好处吗final
参数和变量?
松耦合:避免使用
实现类型如
'链表';使用界面
反而
如果我知道我特别需要一个LinkedList
,为什么我不使用它来向未来的开发人员明确表达我的意图?返回有意义的类路径最高的类是一回事,但为什么我不将我的变量声明为最严格的意义呢?
避免SynchronizedAtMethodLevel:使用
块级而不是方法级
同步
块级同步相对于方法级同步有什么优势?
避免使用ShortType:不要使用
短型
我的第一种语言是 C 和 C++,但在 Java 世界中,为什么我不应该使用最能描述我的数据的类型呢?
DD 和 DU 异常(如果我没记错的话 — 我使用 FindBugs 并且消息有点不同)是指为从未读取的局部变量分配一个值,通常是因为它在被读取之前被重新分配了另一个值。一个典型的情况是初始化一些变量null
当它被宣布时。在需要之前不要声明变量。 https://stackoverflow.com/questions/110083/which-loop-has-better-performance-why/110389#110389
分配null
为了“协助”垃圾收集器而使用局部变量是一个神话。 PMD 让您知道这只是适得其反的混乱。
在局部变量上指定finalshould对于优化器来说非常有用,但我没有任何当前 JIT 利用此提示的具体示例。我发现它对于推理我自己的代码的正确性很有用。
指定接口......嗯,接口是一个很棒的设计实践。您可以轻松更改集合的实现,而根本不会影响调用者。这就是接口的意义所在。
我想不出很多情况来电者会require a LinkedList
,因为它不会公开任何未由某个接口声明的 API。如果客户端依赖该 API,则可以通过正确的接口使用它。
块级同步允许关键部分更小,从而允许同时完成尽可能多的工作。也许更重要的是,它允许使用由封闭对象私有控制的锁对象。这样,就可以保证不会发生死锁。使用实例本身作为锁,任何人都可以错误地同步它,从而导致死锁。
类型操作数short
被提升为int
在任何操作中。这条规则是让你知道这个促销活动正在进行,你不妨使用int
。然而,使用short
type 可以节省内存,因此如果它是实例成员,我可能会忽略该规则。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)