java代码规范

一.开发工具规范:

1. 开发工具经项目负责人调试后统一确定。

2. 开发工具一经确定不允许集成任何非统一插件,若有需要,经项目负责人同意后统一为 项目组成员添加。

3. 开发工具的编码格式不允许修改。


二.排版规范:

1. 关键词(或变量)和操作符之间加一个空格。 例如:int iCont = 1;//操作符和值之间有一个空格。

2. 相对独立的代码块与块之间加空行。 例如:两个方法之间需要用空格隔开。

3. 较长的语句、表达式等要分成多行书写。

4. 长表达式要在低优先级操作符处划分新行,操作符放在新行之首。

       例如:int variable = (a * b * c * d) + (e * f) 
                  + (h – i - j) + k 
                  - ((l + m) / n);

5. 代码的新行与上一行根据逻辑关系要进行适应的缩进(一个 table 键),使排版整齐,语 句易读。

6. 不允许把多个短语句写在一行中,即一行只写一条语句。

7. 函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格。采用 TABLE 键缩进。

8. 循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分。

9. 若函数或过程中的参数较长,则要进行适当的划分。

10. 用大括号‘{'和‘}'界定一段程序块时,编写程序块时‘{'和 ‘}'应各独占一行 并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、 枚举的定义以及 if、for、do、while、switch、case 语句中的程序都要采用如上的缩进方 式。

11. main 方法:如果 main(String[]) 方法已经定义了, 那么它应该写在类的底部.


三、命名规范

1、 项目名全部小写

2、 包名全部小写

      项目包命名规则:<域名反转>.<团队名>.<项目名>。相关项目可使用<域名反转>.<团队名>.<父项目名>.<子项目名>的命名法则。

       命名必须全部使用英文小写字母,禁止使用“下划线”等字符。(除常量外,Java命名习惯中均不推荐使用下划线等字符)

     如:com.aozhi.testjdbc.test

3、Class/Object、Interface, 类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写。

     抽象类使用“Abstract”做为类命名的开头;

     Exception类命名使用“Exception”做为类命名的结尾;

    Test类使用“Test”做为类命名的结尾;

     在面向接口编程中,接口的实现类的命名规则为:<接口名>+"Impl"。禁止使用匈牙利命名法。

     如:public class MyFirstClass{}

     接口&&接口实现类

接口接口实现
UserDaoUserDaoImpl

4、Method/Function

     方法的命名使用驼峰法,一般使用动词或动词+名词组合。

     设置/获取某个值的方法,命名为setV/getV

     返回长度的方法,命名为length

    判断布尔值的方法,命名为isV

     将对象转换为某个特定类型的方法应该命名为toT

示例:

getSecretStage()
length()
isEmpty()
toSpecialFormat()

5、 变量名、方法名首字母小写,如果名称由多个单词组成,每个单词的首字母都要大写 ,使用驼峰法。

     如:int index=0;

       public void toString(){}

6、 常量名全部大写

     如:public static final String GAME_COLOR=”RED”;

7、所有命名规则必须遵循以下规则:

    1)、名称只能由字母、数字、下划线、$符号组成

    2)、不能以数字开头

    3)、名称不能使用JAVA中的关键字。

    4)、坚决不允许出现中文及拼音命名。


匈牙利命名:

开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写。

骆驼式命名法:就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。

帕斯卡命名法:又叫大驼峰式命名法。 每个单词的第一个字母都大写。


四  注释规范

     代码注释是架起程序设计者与程序阅读者之间的通信桥梁,最大限度的提高团队开发合作效率。也是程序代码可维护性的重要环节之一。所以我们不是为写注释而写注释

1、 注释形式统一

在整个应用程序中,使用具有一致的标点和结构的样式来构造注释。如果在其它项目中发现它们的注释规范与这份文档不同,按照这份规范写代码,不要试图在既成的规范系统中引入新的规范。

2、 注释内容准确简洁

内容要简单、明了、含义准确,防止注释的多义性,错误的注释不但无益反而有害。

3、基本注释

(a)    类(接口)的注释

(b)    构造函数的注释

(c)     方法的注释

(d)    全局变量的注释

(e)    字段/属性的注释

 备注:简单的代码做简单注释,注释内容不大于10个字即可,另外,持久化对象或VO对象的getter、setter方法不需加注释。具体的注释格式请参考下面举例。

4、特殊必加注释

(a)    典型算法必须有注释。

(b)    在代码不明晰处必须有注释。

(c)     在代码修改处加上修改标识的注释。

(d)    在循环和逻辑分支组成的代码中加注释。

(e)    为他人提供的接口必须加详细注释。

 备注:此类注释格式暂无举例。具体的注释格式自行定义,要求注释内容准确简洁。

注释格式:

1、单行(single-line)注释:“//……”

2、块(block)注释:“/*……*/”

3、文档注释:“/**……*/”

4、javadoc 注释标签语法

@author   对类的说明 标明开发该类模块的作者
@version   对类的说明 标明该类模块的版本
@see     对类、属性、方法的说明 参考转向,也就是相关主题
@param    对方法的说明 对方法中某参数的说明
@return   对方法的说明 对方法返回值的说明
@exception  对方法的说明 对方法可能抛出的异常进行说明


示例:

1、   类注释

在每个类前面必须加上类注释,注释模板如下:

/**

* 

* FileName: Test.java(类名)

* (类的详细说明)

*

* @author 类创建者姓名
* @Date    创建日期

* @version 1.00

*/

2、   属性注释

在每个属性前面必须加上属性注释,注释模板如下:

/** 提示信息 */

private String strMsg = null;

3、   方法注释

在每个方法前面必须加上方法注释,注释模板如下:

/**

* 类方法的详细使用说明

*

* @param 参数1 参数1的使用说明

* @return 返回结果的说明

* @throws 异常类型.错误代码 注明从此类方法中抛出异常的说明

*/

4、   构造方法注释

在每个构造方法前面必须加上注释,注释模板如下:

/**

* 构造方法的详细使用说明

*

* @param 参数1 参数1的使用说明

* @throws 异常类型.错误代码 注明从此类方法中抛出异常的说明

*/

5、   方法内部注释

在方法内部使用单行或者多行注释,该注释根据实际情况添加。


常见的Java不规范代码:

在Eclipse中格式化源代码并管理import语句

Eclipse提供了自动格式化源代码和管理import语句的功能(并移除未使用的语句)。你可以使用下面的快捷键来使用这些功能。

Ctrl + Shift + F – 格式化源代码。

Ctrl + Shift + O – 管理import语句并移除未使用的语句。

除了手动执行这两个功能外,你还可以让Eclipse在保存文件的时候自动格式化源代码并自动管理import语句。要做到这个,在Eclipse中,到 Window -> Preferences -> Java -> Editor -> Save Actions并启用 Perform the selected actions on save,选中 Format source code和 organize imports。

避免在方法中出现多个return语句(退出点):

在你的方法中,确保只有一个 退出点。不要在一个方法中使用多于一个return语句。

如,下面的代码是 不推荐的,因为它有多个退出点(return语句)。

//不推荐使用
private boolean isEligible(int age){
    if(age>18){
        return true;
    }else{
        return false;
    }
}


//推荐
private boolean isEligible(int age){
    boolean result;
    if(age>18){
        result=true;
       
    }else{
         result=false;
    }
    return result;
}

简化if-else方法:

我们写了一些只要一个参数的工具方法,检查一些条件并根据条件返回一个值


//不推荐
private boolean isEligible(int age){

    boolean result;
    if(age>18){
        result=true;
       
    }else{
         result=false;
    }
    return result;
}


//推荐
private boolean isEligible(int age){

    return age>18;
}

不要为Boolean,Integer或String创建新的实例:

避免创建新的Boolean,Integer,String等实例。使用Boolean.valueOf(true)代替new Boolean(true)。两种写法效果差不多但却可以改善性能。

在代码块周围使用大括号:

永远不要忘记在块类型语句(如:if,for,while)周围使用大括号。这可以减少代码歧义并且避免在你修改代码块的时候产生新的bug。

//不推荐
if(age>18)
    return true;
else
    return false;



//推荐
if(age>18){
    return true;
}else{
    return false;
}

别忘了给switch添加default语句:

总是给switch添加一个default语句。

避免 重复 使用同样的字符串,创建一个常量吧:

如果你需要在多个地方使用同一个字符串,那就创建一个字符串常量来使用吧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值