JAVA编程规范08.docx
- 文档编号:2977927
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:24
- 大小:42.79KB
JAVA编程规范08.docx
《JAVA编程规范08.docx》由会员分享,可在线阅读,更多相关《JAVA编程规范08.docx(24页珍藏版)》请在冰豆网上搜索。
JAVA编程规范08
1Java编程规范1
1.1排版1
1.1.1规则1
1.1.2建议3
1.2注释3
1.2.1规则3
1.2.2建议7
1.3命名9
1.3.1规则9
1.3.2建议10
1.4编码11
1.4.1规则11
1.4.2建议15
1.5性能与可靠性17
1.5.1规则17
1.5.2建议18
2附录19
2.1Eclipse华为风格19
2.2Eclipse注释模板19
2.3JBuilder华为风格(Jbuilder2007以下版本,不包括2007版)19
1Java编程规范
1.1排版
1.1.1规则
规则1程序块要采用缩进风格编写,缩进的空格数为4个,不允许使用TAB缩进。
(1.42+)
说明:
缩进使程序更易阅读,使用空格缩进可以适应不同操作系统与不同开发工具。
规则2分界符(如大括号‘{’和‘}’)应各独占一行,同时与引用它们的语句左对齐。
在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序或者static、,synchronized等语句块中都要采用如上的缩进方式。
(1.42+)
示例:
if(a>b)
{
doStart();
}
规则3较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
(1.42+)
示例:
if(logger.isDebugEnabled())
{
logger.debug("Sessiondestroyed,call-id"
+event.getSession().getCallId());
}
规则4不允许把多个短语句写在一行中,即一行只写一条语句(1.42+)
说明:
阅读代码更加清晰
示例:
如下例子不符合规范。
Objecto=newObject();Objectb=null;
规则5if,for,do,while,case,switch,default等语句自占一行,且if,for,do,while,switch等语句的执行语句无论多少都要加括号{},case的执行语句中如果定义变量必须加括号{}。
(1.42+)
说明:
阅读代码更加清晰,减少错误产生
示例:
if(a>b)
{
doStart();
}
casex:
{
inti=9;
}
规则6相对独立的程序块之间、变量说明之后必须加空行。
(1.42+)
说明:
阅读代码更加清晰
示例:
if(a>b)
{
doStart();
}
//此处是空行
return;
规则7在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如.),后不应加空格。
(1.42+)
说明:
阅读代码更加清晰
示例:
if(a==b)
{
objectA.doStart();
}
a*=2;
1.1.2建议
建议1类属性和类方法不要交叉放置,不同存取范围的属性或者方法也尽量不要交叉放置。
(1.42+)
格式:
类定义
{
类的公有属性定义
类的保护属性定义
类的私有属性定义
类的公有方法定义
类的保护方法定义
类的私有方法定义
}
建议2修饰词按照指定顺序书写:
[访问权限][static][final]。
(1.42+)
示例:
publicstaticfinalStringstr=“abc”;
1.2注释
1.2.1规则
规则8源程序注释量必须在30%以上。
(1.42+)
说明:
由于每个文件的代码注释不一定都可以达到30%,建议以一个系统内部模块作为单位进行检查
规则9包的注释:
写入一个名为package.html的HTML格式的说明文件放入包所在路径。
包的注释内容:
简述本包的作用、详细描述本包的内容、产品模块名称和版本、公司版权。
(1.42+)
说明:
方便JavaDoc收集,方便对包的了解
示例:
com/huawei/iin/websmap/comm/package.html
一句话简述。
详细描述。
产品模块名称和版本
公司版权信息
示例:
为WEBSMAP提供通信类,上层业务使用本包的通信类与SMP-B进行通信。
详细描述。
。
。
。
。
。
。
。
IINV100R001WEBSMAP
(C)版权所有2000-2001华为技术有限公司
规则10类和接口的注释放在class或者interface关键字之前,import关键字之后。
注释主要是一句话功能简述与功能详细描述。
类注释使用“/***/”注释方式(1.42+)
说明:
方便JavaDoc收集,没有import可放在package之后。
注释可根据需要列出:
作者、内容、功能、与其它类的关系等。
功能详细描述部分说明该类或者接口的功能、作用、使用方法和注意事项,每次修改后增加作者和更新版本号和日期,@since表示从那个版本开始就有这个类或者接口,@deprecated表示不建议使用该类或者接口。
/**
*〈一句话功能简述〉
*〈功能详细描述〉
*@author[作者](必须)
*@see[相关类/方法](可选)
*@since[产品/模块版本](必须)
*@deprecated(可选)
*/
示例:
packagem;
importjava.util.*;
/**
*LogManager类集中控制对日志读写的操作。
*全部为静态变量和静态方法,对外提供统一接口。
分配对应日志类型的读写器,
*读取或写入符合条件的日志纪录。
*@author张三,李四,王五
*@seeLogIteraotor
*@seeBasicLog
*@sinceCommonLog1.0
*/
publicclassLogManager
规则11类属性(成员变量)、公有和保护方法注释:
写在类属性、公有和保护方法上面,注释方式为“/***/”.(1.42+)
示例:
/**
*注释内容
*/
privateStringlogType;
/**
*注释内容
*/
publicvoidwrite()
规则12公有和保护方法注释内容:
列出方法的一句话功能简述、功能详细描述、输入参数、输出参数、返回值、异常等。
(1.42+)
格式:
/**
*〈一句话功能简述〉
*〈功能详细描述〉
*@param[参数1][参数1说明]
*@param[参数2][参数2说明]
*@return[返回类型说明]
*@exception/throws[异常类型][异常说明]
*@see[类、类#方法、类#成员]
*@since[起始版本]
*@deprecated
*/
说明:
@since表示从那个版本开始就有这个方法,如果是最初版本就存在的方法无需说明;@exception或throws列出可能仍出的异常;@deprecated表示不建议使用该方法。
示例:
/**
*根据日志类型和时间读取日志。
*分配对应日志类型的LogReader,指定类型、查询时间段、条件和反复器缓冲数,
*读取日志记录。
查询条件为null或0的表示没有限制,反复器缓冲数为0读不到日志。
*查询时间为左包含原则,即[startTime,endTime)。
*@paramlogTypeName日志类型名(在配置文件中定义的)
*@paramstartTime查询日志的开始时间
*@paramendTime查询日志的结束时间
*@paramlogLevel查询日志的级别
*@paramuserName查询该用户的日志
*@parambufferNum日志反复器缓冲记录数
*@return结果集,日志反复器
*@since1.2
*/
publicstaticLogIteratorread(StringlogType,DatestartTime,DateendTime,intlogLevel,StringuserName,intbufferNum)
规则13对于方法内部用throw语句抛出的异常,必须在方法的注释中标明,对于所调用的其他方法所抛出的异常,选择主要的在注释中说明。
对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。
(1.42+)
说明:
异常注释用@exception或@throws表示,在JavaDoc中两者等价,但推荐用@exception标注Runtime异常,@throws标注非Runtime异常。
异常的注释必须说明该异常的含义及什么条件下抛出该异常。
规则14注释应与其描述的代码相近,对代码的注释应放在其上方,并与其上面的代码用空行隔开,注释与所描述内容进行同样的缩排。
(1.42+)
说明:
可使程序排版整齐,并方便注释的阅读与理解。
示例:
/*
*注释
*/
publicvoidexample2()
{
//注释
CodeBlockOne
//注释
CodeBlockTwo
}
/*
*注释
*/
publicvoidexample()
{
//注释
CodeBlockOne
//注释
CodeBlockTwo
}
规则15对于switch语句下的case语句,必须在每个case分支结束前加上break语句。
(1.42+)
说明:
break才能真正表示该switch执行结束,不然可能会进入该case以后的分支。
至于语法上合法的场景“一个case后进入下一个case处理”,应该在编码设计上就避免。
规则16修改代码同时修改相应的注释,以保证注释与代码的一致性。
不再有用的注释要删除。
(1.42+)
规则17注释的内容要清楚、明了,含义准确,防止注释二义性。
(1.42+)
说明:
错误的注释不但无益反而有害。
规则18避免在注释中使用缩写,特别是不常用缩写。
(1.42+)
说明:
在使用缩写时或之前,应对缩写进行必要的说明。
规则19对重载父类的方法必须进行@Override声明(5.0+)
说明:
可清楚说明此方法是重载父类的方法,保证重载父类的方法时不会因为单词写错而造成错误(写错方法名或者参数个数,类型都会编译无法通过)
示例:
@Override
publicvoiddoRequest(SipServletRequestreq)throwsServletException,
IOException
1.2.2建议
建议3避免在一行代码或表达式的中间插入注释。
(1.42+)
说明:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 编程 规范 08