Java编码规范

本文详细阐述了Java编码规范,涵盖操作、日志、注释、异常、安全、配置、资源使用、类编写、格式、命名及注释规范。强调代码格式化、日志标准化、异常处理、安全防护和统一编码风格的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java编码规范
一.操作规范
1.提交代码前必须格式化代码
Eclipse中配置的位置:    
Window->Preferences->Java->Code Style ->code Templates  
Window->Preferences->Java->Code style->Formatter
2.代码提交
为了防止冲突,提交前,先从SVN中更新代码和配置文件,如果发生冲突,先看历史说明,在确认,提交之前,eclipse如果有warning,必须修复
二.日志规范
1.日志输出
代码禁止以System及Throwable.printStackTrace的方式输出日志信息,必须用Logger替代
2.错误日志
由于系统原因造成业务处理失败的事件,需要记录错误日志,非系统原因的业务处理失败,不应该记录错误日志
三.注释规范
对于一个完整的类,应该包括版权注释,类的说明注释,类的成员变量注释,以及public,protected,private方法的注释(setter,getter,接口的实现方法除外)保持代码和注释的一致性。
四.异常处理
捕捉到的异常,至少要记入日志,或者重新抛出,最外层的业务使用者,必须处理异常,将其转化为用户可以理解的内容。
五.安全规范
1.web安全
对于前台的web页面,必须加上表单重复提交功能,对于业务关键字段需要加上放篡改的功能,否则可能造成业务重复执行或者被客户端恶意篡改,对于前台页面,严禁出现方便调试后台的页面。
2.敏感信息保护
用户的敏感信息包括密码,短信验证码,身份证号,银行密匙,不能泄露,可能会导致信息泄露的方式有Logger,URL,get参数。
六.通用规范
1.配置信息的使用
避免将UserID,URL,文件名,系统等开关参数编码
2.资源的使用
对于系统资源的访问,使用后必须释放系统资源,这类资源包括:文件流,线程,网络连接,数据库链接等。对于文件,流IO操作,必须通过finally关闭,对于线程,必须由线程池提供,对于网络连接与数据库连接,必须由框架通过连接池提供。
七.类的编写规范

  1. 所有包,类,接口,方法,属性,参数均使用英文单词命名,所有单词第一个字母大写,其它字母小写。除了第一个单词,所有单词第一个字母大写,其他字母小写。
  2. 命名包,类,接口,方法变量时,尽量贴近问题的领域
  3. 修改源代码时,尽量保持与所修改系统的编码格式风格保持一致
  4. 所有包名必须使用com.[company].project.[project name]
    八.格式规范
  5. 包的导入应该按照相关性进行分组
  6. 只导入明确需要的类,只需要看导入列表,就可以知道该类依赖哪些类
  7. 类和接口元素的布局顺序
  1. 类和接口的文档描述
  2. 类和接口的声明
  3. 类的静态变量,按照public,protected,package,private
  4. 实例变量,按照public,protected,package,private顺序
  5. 类的方法,无固定顺序
  1. 类的声明,基类和实现的接口应该独立执行,保持可读性。
  2. 方法修饰关键词定义的顺序
    <public, protected, private > static abstract synchronized  
    unuaual final native methodName
  3. 变量声明,不要在一行声明多个变量
  4. 保证明确的类型转换,不要默认进行隐式类型转换
    intValue = (int) floadValue; //避免  intValue = floatValue
  5. 数组指示符紧跟类型变量
    int[] a = new int[20]; // 避免: int a[] = new int[20]
  6. 仅仅循环控制变量才能出现在for()循环中
    sum = 0;  
    for (i = 0; i < 100; i++) { 
    sum += value[i];
    }
    //避免:  
    for (i = 0, sum = 0; i < 100; i++){ 
    sum += value[i]; 
    }
  7. 循环变量应该靠近循环体初始化
    isDone = false while(!isDone){ 
    … 
    }
    //避免  
    isDone = false; 
    … 
    … 
    while(!isDone){ 
    … 
    }
  8. 避免长的布尔表达式,应该换成多个更容易理解的表达式
  9. 不要再条件语句中执行方法,以提高可读性
  10. 代码缩进,应该使用4个空格为一单位进行缩进
  11. 条件语句的主要形式,即使单条语句,也要使用括号
    If(conditions){
    Statements;
    }
    If(conditions){
    Statements;
    }else{
    Statements;
    } else{
    Statements;
    }
  12. 空循环也要使用完整的{}块
  13. Switch语句的使用格式
    Switch(condition){
    Case ABC:
    Statements;
    //做注释
    Case DEF:
    Statements;
    Break;
    Default:
    Statements;
    Break;
    }
  14. try-catch使用格式
    try{
    statements;
    }
    Catch(Exception exception){
    Statements;
    }
  15. 空格的使用
  1. 运算符两边应该各有一个空格
  2. Java保留字后面应跟随一个空格
  3. 逗号后面跟随一个空格
  4. 冒号两个应各有一个空格
  5. 分号后面跟随一个空格
  1. 紧密相关的代码块应该用一空行分开
  2. 为了保证可读性,变量名应该左对齐
  3. 对if语句中的条件进行折行时,应该使折行的条件语句相对主功能语句在缩进4个空格,突出主要功能语句。
    九.命名规范
    1.一般命名规则
  4. 包名应该使用小写字母,不要出现下划线等
  5. 所有类名命名首字母大写命名,使用名词组合
  6. 使用名词组合或形容词去命名一个接口,接口能提供一个对象提供的服务,也描述了一个对象的能力,所以用able,或iable作为后缀
  7. 变量名和参数名使用驼峰表示形式
  8. 对于常量名,使用大写字母,并使用下划线做间隔
  9. 方法名应该使用动词开头
  10. 缩写字母应该保持首字母大写
  11. 变量名应该和类型名称一致
    2.特殊命名规则
  12. 使用get/set对类属性进行访问
  13. 使用is前缀表示一个布尔变量和方法
  14. 在查询时应该使用find作为前缀
  15. 使用initialize作为对象初始化方法的前缀
  16. 对于对象集合,变量名应该使用复数
  17. 对于抽象类,应该使用Abstract前缀
  18. 对于表示编号的变量,应使用NO后缀
  19. 异常应该使用Exception作为后缀
    十.注释规范
    所有的源文件都应该在开头有一个注释,其中列出类名、版本信息、日期和版权声明:

/*

  • Classname
  • Version information
  • Date
  • Copyright notice
    */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值