Avoid Decimal Literals In Big Decimal Constructor 应避免使用Decimal(0.5)这样的做法,因为这样是错误的不精确的
Avoid Rethrowing Exception 不应当在catch语句中重新抛出另外的异常
Avoid Throwing Null Pointer Exception 不应该抛出空指针异常
Boolean Instantiation 不需要实例化布尔变量,只需=Boolean.True or =Boolean.Flase
Close Resource 有未关闭的资源,需要使用finally语句块确保安全
Collapsible If Statements 如果有多条if语句连续出现,可以使用短路条件if(A && B && ......)提高效率
Compare Objects With Equals 比较两个对象应该使用equal而不是等于
Cyclomatic Complexity 通常来讲,这个方法或者类太长了,需要分解
Dont Import Java Lang Java.Lang是默认引入的不需要显示引入
Empty Finalizer或Empty Finally Block或Empty If Stmt或Empty Statement或Empty Static Initializer或Empty Switch Statements或Empty Synchronized Block或Empty Try Block或Empty While Stmt:这个是非常常见的代码问题,if、switch、finally、try等内部是空的,很有可能是码农忘记处理了
Equals Hash Code 方法equal重写了但是hashcode未重写
Equals Null 和null比较用==而不是用equals
If Else Stmts Must Use Braces或If Stmts Must Use Braces 编码时if或者else不写大括号,很容易出现问题
Magic Number 魔术数,指的是一个数字无端的出现在代码中,但是却不知道其含义,很常见
Naming - *** 通常是类、方法、变量的命名不规范
Replace Vector With List 应使用List来代替Vector提高效率
Security - Array is stored directly 通常是数组类型的参数使用时,没有使用clone,方法直接改变了引用所指的对象
Singular Field 仅在某方法中使用的变量不应该声明为实例变量
Unconditional If Statement 通常是If语句永远为真或者永远为假
Unnecessary Case Change 使用equalsIgnoreCase()更高效
Unused Private Field或Unused formal parameter或Unused local variable或Unused private method没 有用到的变量、参数、方法
Useless Operation On Immutable 在方法体中修改了某值意图想传出来,但实际上操作的是一个新的对象或者值,如改变基本类型的参数