Java代码静态检测规范:从Sonar到BigInteger与Cloneable
4星 · 超过85%的资源 需积分: 9 58 浏览量
更新于2024-07-27
收藏 129KB DOC 举报
"Java代码静态检测规则是一套用于提升代码质量、遵循最佳实践和避免潜在错误的规范。这些规则类似于SonarQube等工具执行的检查。以下是一些关键的静态检测规则:
1. **避免无谓的BigInteger实例创建**:
不应创建已存在的BigInteger实例,如BigInteger.ZERO, BigInteger.ONE以及在1.5版本后的大于10的实例。PMD对此有特定的检查规则:BigIntegerInstantiation。
2. **类类型参数命名规范**:
类型参数名应符合特定格式,例如首字母大写的驼峰式命名。Checkstyle提供了一个规则ClassTypeParameterNameCheck,确保类参数名符合正则表达式"^[A-Z]$"。
3. **clone方法抛出CloneNotSupportedException**:
如果方法clone()不支持克隆,它应该抛出CloneNotSupportedException。PMD包含一个检查规则CloneThrowsCloneNotSupportedException来验证这一点。
4. **clone方法与Clonable接口**:
实现clone()方法时,除非是final且仅抛出CloneNotSupportedException的方法,否则类必须实现Cloneable接口。PMD的类型解析功能可以检测这种情况。
5. **避免空的 finally 块**:
空的finally块可能导致意外行为,因为它们可能会覆盖在try或catch块中的返回语句。PMD有EmptyFinallyBlock检查来发现这种情况。
6. **避免未使用的局部变量**:
未使用的变量可能表示代码中的错误或冗余。FindBugs和PMD都有检查规则来找出未使用的局部变量。
7. **避免使用System.exit()**:
在某些情况下,直接调用System.exit()可能导致应用程序提前终止,破坏正常的关闭流程。这通常被视为不良实践,可使用更优雅的退出方式。
8. **字符串连接优化**:
避免在循环中使用String concatenation,因为它会导致性能下降。使用StringBuilder或StringBuffer进行动态字符串构建。
9. **资源管理**:
对于打开的文件、数据库连接等资源,应始终在finally块中关闭。Try-with-resources语句是Java 7引入的一个好实践,可以自动处理资源关闭。
10. **避免使用硬编码常量**:
硬编码的常量可能导致代码难以维护和测试。将它们定义为常量字段或使用枚举可以提高可读性和可重用性。
这些静态检测规则旨在帮助开发者编写更健壮、更易于维护的Java代码,减少bug,提高代码质量。遵循这些规范,可以显著提高代码的可读性和可靠性,同时也便于团队之间的协作。"
2021-01-29 上传
2018-03-27 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
zhaolixin007
- 粉丝: 216
- 资源: 13
最新资源
- 基于多变量类别自适应的图像分割算法
- jsp高级编程电子书
- matlab图像处理命令
- ComputerSystem-AProgramerPerspective-beta
- c语言设计第三版习题答案
- LINUX与UNIX SHELL编程指南LINUX与UNIX SHELL编程指南28
- 简明Socket编程指南
- LINUX与UNIX SHELL编程指南LINUX与UNIX SHELL编程指南25
- SQL Server 2005 技术内幕T—SQL查询
- LINUX与UNIX SHELL编程指南LINUX与UNIX SHELL编程指南21
- ajax实战中文版.pdf
- Drools4.0官方使用手册中文.doc
- LINUX与UNIX SHELL编程指南LINUX与UNIX SHELL编程指南16
- flex cookbook.pdf 中文版
- LINUX与UNIX SHELL编程指南LINUX与UNIX SHELL编程指南15
- LINUX与UNIX SHELL编程指南LINUX与UNIX SHELL编程指南13