版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
规范文档编号J2EE_SPECIFICATI0N_901
Java编码规范
Version1.0
2022年12月
文档修订记录
章节章节名称修订内容简述修订日期修订前
编号版本号
目录
目录.............................................................................3
1引言.....................................................................5
1.1文档目的.................................................................5
1.2文档预期读者.............................................................5
1.3文档合用范围.............................................................5
2JAVA代码开辟规范........................................................6
2.1命名规范.................................................................6
2.1.1文件File.................................................................................................................6
2.1.2包Package............................................................................................................6
2.1.3接口Interface........................................................................................................6
2.1.4类Class.................................................................................................................7
2.1.5方法Method.........................................................................................................7
2.1.6参数Parameter.....................................................................................................7
2.1.7变量Variable.........................................................................................................8
2.1.8实例变量InstanceVariable................................................................................8
2.1.9常量Constant........................................................................................................8
2.1.10数组Array.............................................................................................................8
2.2格式规范.................................................................9
2.2.1版权信息CopyrightInformation.........................................................................9
2.2.2注释Comment......................................................................................................9
2.2.3缩进Indentation.................................................................................................11
2.2.4空格Space........................................................................................................11
2.2.5空行BlankLine.................................................................................................11
2.2.6行长度LineLength..........................................................................................12
2.2.7换行NewLine...................................................................................................12
2.2.8圆括号Parentheses..........................................................................................13
2.2.9大括号BigBrackets........................................................................................13
2.3语句规范................................................................14
2.3.1简单语句SimpleStatement.............................................................................14
2.3.2条件语句ConditionStatement........................................................................14
2.3.3分支语句SwitchStatement............................................................................14
2.3.4循环语句LoopStatement...............................................................................15
2.3.5包和引入语句PacketandImportStatement.................................................15
2.3.6声明语句DeclareStatement...........................................................................16
2.3.7例外控制语句ExceptionControlStatement.................................................16
2.3.8类和接口ClassandInterface.........................................................................17
2.3.9构闻析构Constructor/Finalizer......................................................................17
2.3.10方法Method.....................................................................................................18
第3页共25页
2.3.11属性Attribute...................................................................................................19
2.3.12SQL语句SQLStatement..............................................................................20
2.4日志规范......................................................................20
2.5普通性规范...................................................................21
2.6其它代码开辟规范.............................................................22
2.6.1多线程Multi-Threading...................................................................................22
2.6.2Servlet...............................................................................................................22
2.6.3JDBC.................................................................................................................23
第4页共25页
1引言
1.1文档目的
木文试图提供一套编写高效可靠的Java代码的标准、约定和指导。它们以
安全可靠的软件工程原则为基础,使代码易于理解、维护和增强。通过遵循和改
进这些程序设计标准,使各项目产生的代码有更好的一致性,并提高软件开辟团
队的生产效率。
本规范合用于采用J2EE规范的项目,所有项目中的Java代码(含JSP,
SERVLET,JAVABEAN,EJB,开辟工具生成的代码框架等)均应遵守这个规范。同
时,也可作为其它项目的参考。要求项目都要遵循,并作为项目评审与验收依据。
规范原则:
•遵循业界标准
・可读性强,意义清晰
•整洁严谨、风格统一
1.2文档预期读者
本文档的预期读者包括J2EE项目开辟组全体成员:技术管理人员、系统设
计人员、系统开辟人员、系统测试人员、系统维于人员、推广培训人员及其他相
关人员。
1.3文档合用范围
本文档合用于所有与Java相关的开辟。
第5页共25页
2Java代码开辟规范
2.1命名规范
2.1.1文件File
NamingConventionMustFolloworExample
命名规范Not范例
是否必须遵循
文件名命名方法,单词必须ThisIsTest.java
首字母大写
备注:
2.1.2包Package
NamingConventionMustFolloworExample
命名规范Not范例
是否必须遵循
采用天阳Internet域必须con.tansun.package
名格式命名
Package名称小写必须
Package名称必须为单必须使用:
数con.tansun.servlet
不使用:
con.tansun.servlets
备注:天阳标准Internet域名为,所以包结构以com.taisun
为前缀
2.1.3接口Interface
NamingConventionMustFolloworExample
命名规范Not范例
是否必须遵循
英语单词字头大写,其必须ThislsAnlnterfaceName
他可以用大写或者小写
接口要I开头必须ISomelnterface
备注:
第6页共25页
214类Class
NamingConventionMustFolloworExample
命名规范Not范例
是否必须遵循
英语单词字头大写,其必须ThislsAC1assName
他可以用大写或者小写
备注:
2.1.5方法Method
NamingConventionMustFolloworExample
命名规范Not范例
是否必须遵循
第一个英文单词首字.母必须openAccount()
小写getStringO
类的获取方法的方法名必须getFirstNameO
采用被访问的字段名前getLastNameO
加之前缀get
类的设置方法的方法名必须setFirstName()
采用被访问的字段名前setLastNameO
加之前缀set
类的布尔型的判断方法必须isPersistent()
要求方法名使用单词isStringO
is做前缀或者使用具equal()
有逻辑意义的单词pquals()
类的普通方法采用完整必须openFileO
的英文描述说明成员方addAccount()
法功能,并尽可能是动+
名形式。
备注:
216参数Parameter
NamingConventionMustFolloworExample
命名规范Not范例
是否必须遵循
参数的名字必须和变量必须thisAClassParameter
的命名规范一致
使用故意义的参数命建议setCounter(intsize)
名,如果可能的话,使(
用和要赋值的字段一样this.size=size;
第7页共25页
的名字)
备注:
217变量Variable
NamingConventionMustFolloworExample
命名规范Not范例
是否必须遵循
变量的名字必须以一个必须ustername
小写字母开头,后面的tlisIsAClassVariable
单词用大写字母开头
循环记数变量通常采用建议ij,k
i,j,k或者counterC()unter
备注:
对于使用0/R映射、开辟工具自动生成变量等时,可以不采用本节要求的变
量命名规范
2.1.8实例变量InstanceVariable
NamingConventionMustFolloworExample
命名规范Not范例
是否必须遵循
变量的名字必须以一个必须username
小写字母开头,后面的thisAClassInstancc
单词用大写字母开头
备注:
2.1.9常量Constant
NamingConventionMustFolloworExample
命名规范Not范例
是否必须遵循
常量的名字必须都大必须finalstaticint
写,下划线分隔DEFAULT_HTTP_P0RT=80
备注:
2.1.10数组Array
NamingConventionMustFolloworExample
命名规范Not范例
是否必须遵循
数组的名字必须参照示必须娜:
例命名byte口buffer
第8页共25页
不使用:
bytebuffer[]
备注:
2.2格式规范
2.2.1版权信息CopyrightInformation
FormatSpecificationMustFolloworExample
格式规范Not范例
是否必须遵循
版权信息必须位于必须/*
Java文件的开头*Copyright©2000ShanghaiXXXCo.Ltd.
*Allrightreserved.
*/
备注:
222注释Comment
FormatSpecificationMustFolloworExample
格式规范Not范例
是否必须遵循
类/接口注释:必须/**
描述Java类、接口、每*功能/模块:
个文档注释设在注释分*@author李广
割符/**…*/中,这种注******************.cn
释应该放在声明之前,*Aversion1.0yyyy/mm/dd
“作者”使用统一邮箱*类描述
作为标识;*修订历史:
版本中必须包含编写/*日期作者参考描述
最新修订日期*see相关类连接
*天阳宏业科技版权所有.
*/
publicclassExample{...
方法注释必须/**
描述方法。每一个文档*©param
注释设在注释分割*©return
符/**…*/中,必须明*方法描述
确的描述方法的出入参*/
数、异常、以及方法的
含义。对于实现接口的
方法,其注释的内容
第9页共25页
少于原接口中的注释内
容
成员注释必须
所有类成员必须进行注
释;其中公共成员必须
进行javaDoc注释;
对于方法内部的私有成
员,缺省的需要注释:
对于暂时的,直观含义
明确的可以不加注释;
块注释:必须/*
块注释用于给文*在这里描述
*/
件、方法、数据结构和
算法提供描述。必须利
用块注释描述程序的要
点。写在函数或者方法「1
的块注释必须与它所描
述的代码的缩进一致。
一个块注释之前应该由
一个空行将它与代码隔
离开
单行注释:必须If(condition){
单行的短注释与它所跟//当帐户是在…
着的代码的缩进一致。
如果一个注释不能在一
行中写完,就应该使用
块注释的格式。单行注
释之前应该有一个空
行。
使用/**/暂时删除原建议
代码
备注:
•注释要简单明了。
•编写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致
性。
•在必要的地方注释,注释量要适中。注释的内容要清晰、明了,含义准确,
防止注释二义性。保持注释与其描述的代码相邻,即注释的就近原则。
•对代码的注释应放在其上方相邻位置,不可放在下面。对数据结构的注释应
放在其上方相邻位置,不可放在下面;对结构中的每一个域的注释应放在此
域的右方;同一结构中不同域的注释要对齐。
•变量、常量的注释应放在其上方相邻位置或者右方。
・全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或者过程
存
第10页共25页
取它以及存取时注意事项等的说明。
•在每一个函数或者过程的前面要有必要的注释信息,包括:函数或者过程名
称;功
匕LI卜长A、111-if.T.i.-iAknlJ_iniLUil.LLJ3/.nLJ/GV
2.2.3缩进Indentation
FormatSpecificationMustFolloworNotExample
格式规范是否必须遵循范例
子功能块应在其父功能必须
块后缩进
使用一个缩进位作为缩建议if(){
进的单元SomeProcess();
)
备注:
2.2.4空格Space
FormatSpecificationMustFolloworNotExample
格式规范是否必须遵循范例
操作符先后使用空格建议if(x==3)
关键字与紧跟着的括号建议while(true){
间使用空格分开•••
)
for语句中的表达式建建议for(exprl;expr2;expr3)
议使用空格分开
备注:
•克格不应该置于方法名与其左括号之间,这将有助于区分关键字和方法调
用。
2.2.5空行BlankLine
FormatSpecificationMustFolloworNotExample
格式规范是否必须遵循范例
两个方法之间使用一个建议
空行
方法内的局部变量和方建议
法的第一条语句之间使
用一个空行
块注释或者单行注释之建议
前使用一个空行
一个方法内的两个逻辑建议
段之间使用一个空行,
用以提高可读性
第11页共25页
备注:
•豆行将逻辑相关的代码段分隔开,以提高可读性。
2.2.6行长度LineLength
FormatSpecificationMustFolloworNotExample
格式规范_______是否必须遵循范例
单个方法的代码行(不建议
包含注释行)建议少于
100行
单个类的代码行(包含建议
注释行)建议少于
1500行
一行的长度尽量少于建议
100个字符,因为不少
的终端和工具不能很好
的处理,可能导致无法
更如显示_____________
备注:
•在任何情况下,超长的语句应该在一个逗号或者一个操作符后折行。一条语
句折行后,应该缩进一个缩进位。
2.2.7换行NewLine
FormatSpecificationMustFolloworExample
格式规范Not范例
是否必须遵循
'elseif'和else不建议if0(
要另起一行•••
catch"需要另起一行}elseif0{
・♦♦
}
try{
•••
}
catch(Exceptione){
•♦•
}
备注:
第12页共25页
2.2.8圆括号Parentheses
FormatSpecificationMustFolloworNotExample
格式规范是否必须遵循范例
不应该在语句中使用无必须使用:
意义的括号if(1=42)
不使用:
if((I)=42)
左括号和后一个字符之建议建议:
间不建议浮现空格callProc(aParameter)
不建议:
callProc(aParameter)
右括号和前一个字符之建议建议:
间不建议浮现空格callProc(aParameter)
不建议:
callProc(aParameter)
备注:
2.2.9大括号BigBrackets
FormatSpecificationMustFolloworNotExample
格式规范是否必须遵循范例
{}中的语句应该单独作必须使用:
为一行if(i>0){
i++:
)
不使用:
if(i>0){i++;
)
{}在使用时,左括号在必须if(submit==null){
代码块起始行行尾,右clear();
括号与代码块起始行上)
下对齐。大括号里的代else{
码缩进一个缩进位Cupdate();
)
备注:
第13页共25页
2.3语句规范
2.3.1简单语句SimpleStatement
SpecificationMustFolloworNotExample
规范是否必须遵循范例
每一行只能包含一个语必须使用:
句argv++;〃正确
argc-;//正确
不使用:
argv++;argc—;
备注:
2.3.2条件语句ConditionStatement
SpecificationMustFolloworNotExample
规范是否必须遵循范例
不要在条件语句内必须
田'二'[文》
与"="戒乱(同时适
用于while语句内条件
说明)
在混合运算表达式中使建议建议:
用括号避免运算优先级if((a=b)&&(c=d))
问题,即使对运算的优不建议:
先顺序非常清晰,也应If(a==b&&c==cl)
该这么做。(同时合用于
while语句内条件说
明)
备注:
2.3.3分支语句SwitchStatement
SpecificationMustFolloworNotExample
规范是否必须遵循范例
每一个Switch的case建议switch(x){
建议有default做为最case1:{
后出口expr;break;
}//endcase
case2:_____________
第14页共25页
expr;break;
}//endcase
default:{
expr;break;
}//enddefault
}//endswitch
备注:
2.3.4循环语句LoopStatement
SpecificationMustFolloworNotExample
规范星否必须遵循范例
如果for循环中表达式建议
很长,建议将多行进行
分割,保证代码的可读
性
for语句的初始化或者5[建议
新语句中使用逗号时,
避免复杂性,最多使用
三个变量。必要的话,
初始化可以在for循环
之前使用单独的语句,
或者更新语句可以在循王
的底部执行
备注:
2.3.5包和弓I入语句PacketandImportStatement
SpecificationMustFolloworNotExample
规范是否必须遵循范例
import中标准的包名建议packagehotlava.net.stats
要在本地的包名之前,,
importjava.io.
import
java.ulil.Observable;
import
hotlava,uti1.Application;
import语句建议遵循建议
以下导入顺序:
1.jdk标准包
2.java扩展包
第15页共25页
3.使用外部库的
包
4.使用公司的公
共包
5.使用项目的公
共包
备注:
•import语句尽量不使用通配符“钎(会加大程序编译时的开消和生成的类文
件的大小)。
•为每一个自身独立的项目和一组有关联的方法创建一个新的java包。
2.3.6声明语句DeclareStatement
SpecificationMustFolloworNotExample
规范是否必须遵循范例
不要将变量的声明放在必须使用:
同一行。intfoo;
int[]fooarray;
不使用:
intfoo,fooarray[];
尽量在声明局部变量的必须
同时初始化。惟一不这
么做的理由是变量的初
始值依赖于某些先前发
生的计算。
避免声明的局部变量与必须intcount;
上一级变量重名。
myMethod(){
if(condition){
intcount=0;
//AVOID!
♦♦・
}
•••
)
备注:
2.3.7例外控制语句ExceptionControlStatement
ExceptionControlMustFolloworNotExample
例外是否必须遵循范例
不要有空的catch语句必须
浮现,至少打印出在哪
里抛出例外和相关信息
第16页共25页
在捕获一场时尽可能使
用具体异常,最好不要
使用Exception这种通
用异常类型,除非有明
确的要求需要捕获所有
异常。
备注:
2.3.8类和接口ClassandInterface
SpecificationMustFolloworNotExample
规范是否必须遵循范例
类、接口定义之前应先必须
进行注释。注释包括类、
接口的目的、作用、功
能,实现的算法、使用
方法、示例程序等,还
可以包括期望改进工作
的地方和不希翼改变的
地方
左括号”{”置于声明必须classSample{
行尾,右括号"}“另起intivarl;
一行,缩进匹配相应开intivar2;
始语句Sample(inti,intj){
ivarl=i;
ivar2=j;
}
intemptyMethodO{}
)
备注:
2.3.9构泡析构Constructor/Finalizer
SpecificationMustFolloworExample
规范Not范例
是否必须遵循
要初始化父类的构造函建议
数
不要在构造函数中初始建议
化静态数据,应在声明
中初始化
用构造函数做简单初始建议
化,复杂的功能应留到
第17页共25页
其他的方法在构造函数
后执行
备注:
2310方法Method
SpecificationMustFolloworExample
规范Not范例
是否必须遵循
尽可能缩小方法的能够建议
被访问的范围。如果不
需要类以外的方法访问
的方法则使用
private,而只需要
package范围内访问的
方法使用default,若
即要package内的代码
能够访问又要求其继承
类能够访问则使用
protected,最后若需要
所有的代码都可以访问
则再使用public
应尽可能验证所有传入建议If(Parameter1!=NULL){
参数,不能假定非空对…)
象,验证有错误时返回//endlf
明确的错误信息if(Parameter2!=NULL){
…)
//endlf
尽量保证每一个方法惟力k建议booleancheck(){
一个出口,否则可能出booleanresult=false;
现丢失返回的情况if(...){
result=true;
)
returnresult;
)
备注:
第18页共25页
2.3.11属性Attribute
CatelogDefineMustFollowExample
类别SpecificationorNot范例
定义规范是否必须遵
循
Constant当某一些数据为必须
常量常量时不要直接
在代码中使用这
些数据,而应该
先将这些数据定
义为Java的常量
然后引用常量的
标识符来完成预
定义功能
Parameter在子类中不要重必须
sand复定义父类中的
Attribute成员变量
建议使用getter建议this.getlnternalName();
和setter访问同或者this.internalName;
一个类中的成员
变量,或者用关
键字this
应避免出现建议
public的成员变
量,原则上都是
private,用
getter和setter
进行访问,保证
封装性
Local避免内联建议for(inti=0;i<10;i++){
Variable(in-line)声明•••
暂时变量暂时变量,除非}
是循环计数
建议不要在一个建议建议:
语句中为多个变fDoBar.fChar='c';
量赋相同的值barFoo.Ichar='c';
不建议:
fDoBar.fChar=barFoo.Ichar=
,,
〜c,•
第19页共25页
不要把赋值号用建议
在容易被误认为
等号的地方
赋值不要为r提局运建议建议:
行时的性能而使a=b+c;
用嵌入式的赋值d=a+r
不建议:
d=(a=b+c)+r
2312SQL语句SQLStatement
SpecificationMustFolloworExample
规范Not范例
是否必须遵循
SQL关键字应全部大写必须SELECTenameFROMemp
表名和字段名应小写必须
备注:
2.4日志规范
SpecificationMustFollow
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理风险评估中的患者参与
- 环境保护教育:绿水青山就是金山银山的小学班会课件
- 制造业员工技能培训系统方案
- 智能医疗设备领域承诺书(5篇)
- 商业航天行业商业卫星在轨故障诊断系统算法准确性验证研究方法
- 供应链管理优化及操作手册
- 安全作业操作承诺书(8篇)
- 本模块复习与测试说课稿2025学年高中英语牛津上海版高中三年级第二学期-牛津上海版2004
- 护理并发症的护理管理与质量改进
- 人才招引诚信承诺函(5篇)
- 比亚迪供应商质量管理手册
- 酸奶加工厂工作制度范本
- 舞蹈类创新创业
- 湖南省邵阳市2026年中考模拟物理试题(附答案)
- T-CEC 111-2016 柱上变压器一体化成套设备技术条件
- 水法知识讲座课件
- 智能医学检验:AI自动化结果解读与质控
- 拆除工程档案管理制度
- 防晒与皮肤屏障保护
- 雨课堂学堂在线学堂云《骨科相关研究进展(山大)》单元测试考核答案
- DB34∕T 4425-2023 医疗机构治疗药物监测实验室建设指南
评论
0/150
提交评论