Since: PMD 4.0
In JDK 1.5, calling new Long() causes memory allocation. Long.valueOf() is more memory friendly.
This rule is defined by the following XPath expression:
//PrimaryPrefix /AllocationExpression [not (ArrayDimsAndInits) and (ClassOrInterfaceType/@Image='Long' or ClassOrInterfaceType/@Image='java.lang.Long')]
Example:
public class Foo { private Long i = new Long(0); // change to Long i = Long.valueOf(0); }