1
、未使用(死)代码
。存在未使用的私有静态字段
。带有不必要的修饰符的借口
。目前没有使用的私有字段
。未使用的变量
。无需的参数
。显示导入的java.lang包
。目前没有使用的私有方法
2
、编码标准
。一行语句中声明了多种类型的变量
。物理位置不在一起的同名小组成员 。
。从一个抽象类库中的构造器调用的抽象方法
。包括大量case语句的switch语句
。除了第一个之外的main()函数
。直接弹出的Exception类库
。catch语句中Exception或者RuntimeException
。直接弹出的Error
。没有在接口中定义的常量
。长整数应该使用‘L’代替小写字母‘l’
3
、初始化
。没有显式初始化的静态字段
。没有显式初始化每个数据成员的构造器
。编译代码中可能的漏洞
。存在错误的case的switch语句
。程序体为空的for语句
。程序体为空的if语句
。需要重载的方法
。应该使用等号代替==
。程序体为空的else语句
。强制转换为较低精度的主要数据类型
。在switch子句中的文本标识
。if条件中的变量赋值
。缺少default子句中的switch语句
。存在嵌套赋值
。比较浮点数
。循环控制变量在循环内部被突然改变
。方法参数名称和类成员名称冲突
。可能与字符串串联混淆的+操作符
4
、面向对象编程
。继承的静态成员函数被隐藏
。可能嵌套过深的类库
。继承的实例变量被隐藏
。被重载private方法
。内部的类库不可见或外部的类库不相关
。某个实列变量为public或在package中
。没有在一开始列出的public或package方法和数据
。不是abstract或实现比较通常的接口
。命名惯例
。一个类名称不符合标准
。一个接口名称不符合标准
。一个列外名称不符合标准
。一种方法名称不符合标准
。一个静态字段名称不符合标准
。一个静态方法名称不符合标准
。一种方法参数名称不符合标准
。一个实列字段不符合标准
。一个本地变量名称不符合标准
。一个最终静态字段中包含小写字母
。一个返回布尔值的方法使用"is"或者"has"前缀
。一个接口成员字段包含小写字母
。使用一个非惯例的变量名称
5
、优化
。一个finally模块中存在未关闭的流
。使用一个for循环代替System.arrarycopy()拷贝数组
。存在没有必要的instanceof
。存在没有必要的强制变量类型转换
。可以使用一个缩写的赋值语句
。常量字符串使用StringBuffer代替String
。循环条件过于复杂
。取反操作符使用过于频繁
6
、回收
。finalize()没有调用super.finally()
。最终方法的最后模块没有调用super.finalize()
。finalize()被显示调用
。在将主要类型转换成String时,使用了不必要的临时变量
。在应该使用long[]的位置使用了Date[]
7
、javadoc注释
。误用了Javadoc标签
。Javadoc和普通注释之间区分不明显
8
、线程
。使用synchronized,降低了性能
9
、全局静态分析
。过度访问package-private字段
。过度访问package-private方法
。过度访问package-private类库
。过度访问public/protected字段
。过度访问public/protected方法
。过度访问public/protected类库
。没有使用全局package-private字段
。没有使用全局package-private方法
。没有使用全局package-private类库
。没有使用全局public/protected字段
。没有使用全局public/protected方法
。没有使用全局public/protected类库
10
、企业版java beans(EJB)
。bean类库没有定义成为public
。bean类库被错误定义成为abstract
。bean类库被错误定义成为final
。bean类库实现一个ejbCreate()方法
。bean类库错误定义finalize方法
。ejbCreate()访问控制符没有定义成为public
。SessionBean中的ejbCreate()没有返回void
。定位方法的修饰符没有定义成为public
。定位方法的返回类型不是一个主键,也不是主键的类集
。ejbPostCreate()有一个非public的访问控制修饰符
。ejbPostCreate()没有返回类型void
11
、杂项
。成员字段隐藏在成员方法中
。循环记数器无法递增
。for循环中没有包含布尔条件
。存在的clone()方法没有调用super.clone()
。for语句缺少代码模块
。方法参数得到赋值
|