java pmd 规则_java – 这些PMD规则的原因是什么?

DataflowAnomalyAnalysis: Found

‘DD’-anomaly for variable ‘variable’

(lines ‘n1’-‘n2’).

DataflowAnomalyAnalysis: Found

‘DU’-anomaly for variable ‘variable’

(lines ‘n1’-‘n2’).

DD和DU听起来很熟悉…我想在像最弱的前和后条件的测试和分析的事情,但我不记得具体细节。

NullAssignment: Assigning an Object to

null is a code smell. Consider

refactoring.

如果对象是本地对象(不在方法外使用),不会将对象设置为null帮助垃圾收集?或者是一个神话?

MethodArgumentCouldBeFinal: Parameter

‘param’ is not assigned and could be

declared final

LocalVariableCouldBeFinal: Local

variable ‘variable’ could be declared

final

使用最终参数和变量有什​​么优点吗?

LooseCoupling: Avoid using

implementation types like

‘LinkedList’; use the interface

instead

如果我知道我特别需要一个LinkedList,为什么我不使用一个使我的意图明确清楚未来的开发人员?返回类的最高的类路径是有意义的一件事,但为什么我不声明我的变量是最严格的意义?

AvoidSynchronizedAtMethodLevel: Use

block level rather than method level

synchronization

块级同步对方法级同步有什么优点?

AvoidUsingShortType: Do not use the

short type

我的第一种语言是C和C,但在Java世界中,为什么我不使用最能描述我的数据的类型?

> DD和DU异常(如果我记得正确,我使用FindBugs和消息有一点不同)指向一个从未读取的局部变量赋值,通常是因为它在被读取之前被重新赋值另一个值。一个典型的情况是在声明时将一些变量初始化为null。

Don’t declare the variable until it’s needed. >为了“协助”垃圾收集器,为一个局部变量赋值null是一个神话。 PMD让你知道这只是对生产力的混乱。 >在局部变量上指定final对于优化器应该非常有用,但是我没有利用这个提示的当前JIT的任何具体例子。我发现它有用的推理我自己的代码的正确性。 >指定接口就好了,接口是一个伟大的设计实践。你可以轻松地改变集合的实现,而不会影响调用者。这就是接口是什么。 >我不能想到很多情况下,调用者将需要一个LinkedList,因为它没有公开任何未声明的接口的API。如果客户端依赖于该API,则它可通过正确的接口使用。 >块级同步允许临界段更小,这允许尽可能同时完成多个工作。也许更重要的是,它允许使用由封闭对象私有控制的锁定对象。这样,可以保证不会发生死锁。使用实例本身作为锁,任何人都可以不正确地进行同步,从而导致死锁。 >在任何操作中,short类型的操作数被提升为int。这个规则是让你知道这个促销正在发生,你也可以使用一个int。但是,使用short类型可以节省内存,因此如果它是一个实例成员,我可能会忽略该规则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值