JavaEE程序编码规范.2016
- 格式:doc
- 大小:719.04 KB
- 文档页数:18
java编码规则(最新版)目录1.Java 编码规范简介2.Java 编码的基本规则3.Java 编码的进阶规则4.Java 编码的特殊规则5.Java 编码规范的实际应用正文【Java 编码规范简介】Java 编码规范,是指在编写 Java 程序时遵循的一种编码风格和规则。
遵循 Java 编码规范,可以提高代码的可读性、可维护性和可扩展性,从而提高软件开发的效率和质量。
【Java 编码的基本规则】1.遵循统一的编码风格:整个项目或团队应该遵循统一的编码风格,如缩进、空格、换行等。
2.使用有意义的命名:变量、方法、类等命名应该具有明确、简洁、描述性强的特点。
3.合理使用注释:对于复杂的代码、算法等,应该使用注释进行解释说明,提高代码的可读性。
4.遵循面向对象编程原则:尽量使用封装、继承、多态等面向对象编程原则,提高代码的可扩展性和可维护性。
【Java 编码的进阶规则】1.遵循接口隔离原则:不应该强迫客户端依赖于它们不使用的方法,应该尽量减少非抽象类和接口中的方法数量。
2.遵循依赖倒置原则:高层模块不应该依赖于低层模块,二者都应该依赖于抽象。
3.遵循单一职责原则:类应该有明确的职责,应该只有一个原因改变。
【Java 编码的特殊规则】1.异常处理:应该正确处理异常,避免出现未处理的异常。
2.集合使用:应该正确使用集合,避免出现空指针、越界等错误。
3.多线程编程:应该正确使用多线程编程,避免出现死锁、资源竞争等问题。
【Java 编码规范的实际应用】遵循 Java 编码规范,不仅可以提高代码的质量,还可以提高团队的开发效率,降低维护成本。
JA V A编码规范GWP项目研发组2003.6.17目录一、JA V A编程规范简介 (4)二、程序设计标准 (4)(一)命名约定 (4)(二)注释约定 (5)1、Java 注释语句类型 (6)2、快速浏览javadoc (8)三、成员函数标准 (9)(一)、命名成员函数 (9)1、命名存取成员函数 (10)(二)命名构造函数 (11)(三)成员函数的可见性 (11)(四)注释成员函数 (12)1、成员函数的函数头 (12)2、内部注释 (14)(五)编写清晰整洁的代码的技巧 (15)1、给代码加上注释 (16)2、让代码分段/缩进 (16)3、在代码中使用空白 (16)4、遵循30 秒条法则 (17)5、写短小单独的命令行 (17)6、说明运行顺序 (17)四、字段标准(字段/属性) (17)(一)命名字段 (18)1、命名组件 (18)2、命名常量 (19)3、命名集合 (20)(二)字段可见性 (20)(三)注释一个字段 (21)(四)使用存取成员函数 (22)1、为什么采用存取函数? (22)2、命名存取函数 (23)3、存取函数的高级技术 (24)4、存取函数的可见性 (30)(五)一定要初始化静态字段 (30)五、局部变量标准 (30)(一)命名局部变量 (31)1、命名流 (31)2、命名循环计数器 (31)3、命名异常对象 (32)(二)声明和注释局部变量 (32)六、成员函数参数标准 (32)(一)命名参数 (33)(二)注释参数 (33)七、类、接口、包和编译单元的标准 (34)(一)类的标准 (34)1、命名类 (34)2、注释类 (35)3、类的声明 (36)4、公共和保护接口最小化 (37)(二)接口标准 (37)1、命名接口 (38)2、注释接口 (38)(三)包的标准 (39)1、命名包 (39)2、注释包 (39)(四)编译单元标准 (40)1、命名编译单元 (40)2、注释编译单元 (40)八、错误处理和异常 (41)九、各种标准和版本 (42)(一)复用 (42)(二)导入类 (43)(三)优化Java 代码 (43)(四)编写Java 测试集 (44)十、成功的模式 (45)(一)有效地使用这些标准 (45)(二)其它导向成功代码的因素 (46)十一、概括 (48)(一)Java 命名约定 (48)(二)Java 注释约定 (50)1、Java 注释类型 (51)2、注释哪些部分 (52)(三)Java 程序设计约定 (54)十二、附录 (55)(一)标准缩写列表 (55)参考文献 (56)词汇表 (56)一、JA V A编程规范简介本文提供一整套编写高效可靠的 Java 代码的标准、约定和指南。
密级:秘密文件编号:D05-PDS072Java 编码规范版本:0.0.0-1.0.02004-8-20沈阳东软软件股份有限公司 软件开发事业部(版权所有,翻版必究)文件修改控制修改编号版本修改条款及内容修改日期目 录1 引言 (5)1.1简介 51.2目的 51.3参考资料: (5)2 源程序 (6)2.1 源程序命名 (6)2.2 供发布的文件 (6)2.3 源文件的组织 (6)2.3.1 版本信息和版权声明 (6)2.3.2 包的声明 (7)2.3.3 引用声明 (7)2.3.4 类或者接口的声明 (7)3 命名规范 (7)3.1 包的命名 (7)3.2 类和接口的命名 (7)3.2.1 类的命名 (8)3.2.2 接口的命名 (8)3.3 变量命名 (8)3.4 常量命名 (8)3.5 方法命名 (8)3.6 标签命名 (9)4 空白的使用 (10)4.1 空行 (10)4.2 空格 (11)4.3 缩进 (11)4.4 行的延续 (11)5 注释 (12)5.1 版权信息注释 (12)5.2 类注释 (12)5.3 成员注释 (14)5.4 方法注释 (14)5.5 内部类的注释 (15)5.6 其它的注释: (16)5.6.1 代码修改的注释 (16)5.6.2 冗余代码的注释 (16)5.6.3 类体外的注释 (16)6 类 (16)6.1 类的定义 (17)6.2 类的成员变量(字段/属性) (17)6.3 类成员变量(字段/属性)的存取方法 (17)6.4 构造函数 (17)6.5 类方法(静态方法) (18)6.6 实例方法 (18)6.7 MAIN 方法 (18)7 接口 (19)7.1 接口体的组织 (19)8 语句 (19)8.1 简单语句 (19)8.1.1 赋值和表达式 (19)8.1.2 本地变量声明 (19)8.1.3 数组的声明 (20)8.1.4 return语句 (20)8.2 复合语句 (20)8.2.1 括号的格式 (20)8.2.2 IF语句 (21)8.2.3 FOR语句 (21)8.2.4 WHILE语句 (21)8.2.5 DO-WHILE语句 (21)8.2.6 switch语句 (21)8.2.7 try语句 (22)8.2.8 synchronized语句 (22)8.3 标签语句 (22)9 性能优化常识 (23)9.1 前提 (23)9.2 运算时间 (23)9.3 NG.S TRING (23)9.4 JAVA.UTIL.V ECTOR (24)9.5 线程 (25)9.5.1 防止过多的同步 (25)9.5.2 避免同步整个代码段 (25)9.5.3 对每个对象使用多“锁”的机制来增大并发 (25)9.6 循环 (26)9.6.1 边界 (26)9.6.2 循环体内避免构建新对象 (26)9.6.3 break (26)10 日志(LOG) (26)11 其它 (27)11.1 EXIT() (27)11.2 异常 (27)11.3 类名的唯一性 (27)1引言1.1 简介所有的程序开发手册都包含了各种规则。
java 编码规则
Java编码规则是指在编写Java程序时需要遵循的一系列规范和约定,旨在提高代码的可读性、可维护性和可扩展性。
下面是一些常见的Java编码规则:
1. 代码缩进:使用四个空格进行缩进,不要使用制表符。
2. 代码行长度:每行代码尽量不超过80个字符,超过时可以换行。
3. 命名规范:使用驼峰命名法,即首字母小写,后面每个单词的首字母大写。
4. 类名:类名使用名词或名词短语,首字母大写。
5. 方法名:方法名使用动词或动词短语,首字母小写。
6. 变量名:变量名使用名词或名词短语,首字母小写。
7. 常量名:常量名应全部大写,并用下划线分隔单词。
8. 注释:为代码添加适当的注释,解释代码的用途、实现细节等。
9. 空格使用:在运算符两侧、逗号后面、冒号后面等地方使用空格,增加代码的可读性。
10.代码格式化:使用合适的缩进、空行、大括号等格式化代码,以增强可读性。
遵循这些Java编码规则可以使你的代码更易于理解和维护。
此外,还可以使用一些静态代码分析工具来自动检查代码是否符合编码规范,如Checkstyle、FindBugs等。
编码规则的遵守不仅仅是个人习惯的问题,也是一个团队合作的重要环节,通过统一的编码规范可以提高代码的一致性,方便开发人员的协作和项目的维护。
JAVA编程规范1.1 Java文件名与文件组织结构1.一个java源文件不应该超过2 000行。
2.在Java源文件中应该包含一个单一的公共类(class)或接口(interface),这个公共类或公共接口,应该是这个源文件的第一个类或接口。
3.一个Java源文件一般由下面的顺序构成:(1)文件注释头(2)包名(package)(3)引入(import)声明(4)类(class)或接口(interface)的声明部分1.2 Java文件注释头Java类文件注释头是用来描述该类功能及其特点,以及相关开发信息的,如该类的关联类(通常情况下不描述Java系统核心类如java.util.Vector, ng.Thread等)、开发公司或单位、版权、作者、代码审定人该类所支持的JDK版本、该类版本、开发日期、最后更改日期、修改人、复审人等信息,下面就是一个Java类文件注释头:/****************************************************************** 该类功能及其特点的描述(例如:该类是用来……)** 该类未被编译测试过。
** @see(与该类相关联的类):(AnatherClass.java)*** 开发公司或单位:××软件有限公司研发中心** 版权:本文件版权归属××公司研发中心*** @author(作者):必胜利** @since(该文件所支持的JDK版本):Jdk1.3 或JDK1.42.在重点同时难以理解的地方另加注释。
方法体内的注释应该与其所描述的代码位于同一个层次上。
在一个块注释之前一般有一空白行用于做区分代码与注释的边界。
1.7 变量的声明初始化与放置1.7.1 变量声明1.在一般情况下我们建议每一行代码,只声明一个变量;2.如果变量名称较短并且又是同一数据类型同一结构类型,并且没有给变量初始化则可以在同一行声明;1.7.2 变量初始化尽量在变量声明的地方初始化,如果变量的初始化与有待于计算或处理后的值有关,则我们可以在取得这个值后对变量做初始化。
java 编程规范Java编程规范是为了促进Java代码的可读性、可维护性和可扩展性而制定的标准。
以下是一些常见的Java编程规范:一、命名规范1. 类名、接口名、枚举名首字母大写,采用驼峰命名法。
2. 变量名、方法名首字母小写,采用驼峰命名法。
3. 常量名全部大写,使用下划线分割单词。
4. 包名全部小写,使用点号分割单词。
二、代码格式1. 使用4个空格缩进。
2. 每行代码长度不超过80个字符。
3. 在二元运算符(如赋值、算术运算、逻辑运算)两侧添加空格。
4. 在逗号、冒号、分号之后添加空格。
5. 在左花括号之后和右花括号之前添加空格。
6. 在注释之前添加空格。
三、代码结构1. 类的成员按照作用域排列,先是静态成员,然后是实例成员。
2. 类的方法按照功能排列,先是构造方法,然后是其他方法。
3. 每个类只负责一个功能,遵循单一职责原则。
4. 使用适当的访问修饰符控制成员变量和方法的访问级别。
四、异常处理1. 不要捕获异常而不做任何处理,应该记录日志或者抛出更高级别的异常。
2. 不要将整个方法体放在try-catch块中,应该只捕获需要处理的异常。
3. 不要使用异常控制程序的流程,应该使用条件语句或者循环结构。
五、注释规范1. 使用Javadoc注释对类、方法、参数、返回值进行说明。
2. 在每个类的头部使用Javadoc注释描述该类的功能。
3. 使用内联注释对代码进行解释、补充和说明。
4. 注释应该清楚、简明、不冗余,遵循自然语言的习惯。
六、其他规范1. 避免使用魔法数值,应该使用常量或者枚举来表示。
2. 使用块注释对重要的代码块进行标注,方便阅读和查找。
3. 使用业界公认的缩写和术语,避免拼写错误和歧义。
4. 使用合适的数据结构和算法来解决问题,避免低效的代码。
以上仅是Java编程规范的一部分,具体的规范还需要根据具体的项目和团队来制定。
遵循编程规范可以提高代码质量和可维护性,提升团队的协作效率。
SOAR项目Java开发规范1. 引言 (2)2.文件 (2)3.命名规则 (3)3.1基本的规则 (3)3.2常量命名 (3)3.3变量命名 (3)3.4方法命名 (5)3.5类和接口的命名 (5)3.6包的命名 (6)4.注释规范 (6)4.1 基本规则 (6)4.2 Java中有三种注释方式说明 (6)4.2.1文档注释/** */ (6)4.2.2行注释// (7)4.2.3块注释:/* */ (7)4.3类/接口注释 (7)4.4 变量注释 (8)4.5 方法注释 (9)4.6 修改记录 (10)5.编码规范 (10)5.1基本原则 (10)5.2类编写规范 (14)5.3变量 (14)5.4方法 (15)5.5 语言使用及书写规范 (16)1. 引言软件开发涉及到各方面人员的交互、协作,为了有效地进行项目开发的沟通,完善代码的维护和交付,有必要在一个小组中采用统一的软件开发标准。
一般来说,制定这样的标准有下列好处:方便软件维护。
据统计,80%的软件开发费用在维护,规范化的代码才方便维护,降低维护成本。
在软件的整个生命期内,期望一个编码人员从开始到该软件报废一致维护其代码是不现实的,必然需要不断地交付、协同好的编码规范能够大大增强代码的可读性,便于开发人员快速的理解新代码。
任何产品都需要好的包装。
我们可以把代码本身看作是一种产品,那么按照规范编程也是对这个“产品”的包装规范化的代码也是软件质量的保证手段之一,也是软件过程能够流畅的基础。
我们每个人必须牢牢树立这样的观念:你今天所编写的代码,会一直使用很多年,并且很有可能被其他人维护和改进。
所以,我们必须努力写出“干净”和易读的代码。
本文档适用于软件开发过程中开发人员,主要包括编码人员、测试人员,开发人员,规范必须严格遵守,否则程序被视为不合格程序。
注:本规范中标红的内容为强制性遵循内容,开发人员必须遵守。
蓝色为强烈建议性内容,最好遵守,这样可以避免程序出现一些莫名奇妙的问题。
java代码规范Java代码规范是一套约定俗成的编程规范,旨在提高代码的可读性、可维护性和可重用性。
以下是一些常见的Java代码规范:命名规范:1. 类名使用大驼峰命名法,例如MyClass。
2. 方法名和变量名使用小驼峰命名法,例如myMethod。
3. 常量名使用全大写字母和下划线,例如MAX_VALUE。
4. 包名使用全小写字母,例如com.example.mypackage。
代码格式规范:1. 使用四个空格缩进,避免使用制表符。
2. 每行代码不超过80个字符,超出则换行。
3. 使用空格将运算符、逗号和分号与操作数分开,例如"int a =b + c;"。
4. 在左括号前后加一个空格,例如"if (condition) {"。
5. 在方法的左花括号前加空格,例如"public void myMethod() {"。
6. 使用大括号括起的代码块独占一行。
7. 在逻辑上相关的代码块之间使用空行分隔。
注释规范:1. 在类、方法和成员变量定义之前使用Javadoc注释说明其作用、参数和返回值。
2. 在方法内部使用注释解释代码的逻辑。
3. 避免使用不必要的注释,代码应尽可能自解释。
代码质量规范:1. 遵循SOLID原则,尽量将代码设计为松耦合、高内聚的模块。
2. 避免使用魔术数字,使用常量代替。
3. 使用异常处理机制来处理可预料的异常情况,不要捕获所有异常。
4. 避免使用全局变量,尽量将变量的作用范围限制在最小范围内。
5. 避免代码冗余和重复,尽量使用工具类和设计模式来重用代码。
测试规范:1. 使用单元测试框架(例如JUnit)编写测试用例,并确保每个方法都有相应的测试用例。
2. 使用断言来验证预期结果和实际结果是否一致。
3. 测试方法的命名应描述被测试方法的功能和预期结果。
版本管理规范:1. 使用版本管理工具(例如Git)来管理代码的版本和变更历史。
Java编码规范及实践目录Java编码规范及实践 (1)1.2术语 (2)1.3约束 (3)||!(condition5 && condition6)) { (14)4.1一般命名规范 (14)IQuery, IDataAccess,IReportBuilder (15)MAX_TIMES, DEFAULT_NAME (15)4.2特殊命名规范 (17)AbstractReportBuilder,AbstractBeanFactory (18)AccessException, RuntimeException (19)5.2一般原则 (20)1.代码应该和注释保持同步,如果代码和注释不同步,则阅读代码的人会 (20)2.注释尽量简洁,尺度没有准确的定义,大部分人能明白即可,可以将自 (20)Result getResult() throws Exception{ (21)Object getAction(); (22)JavaDoc 工具不要改变格式. (22)Get a default date/time formatter that uses the SHORT (23)Thread.sleep(1000); (24)Derived,如果一个方法可以接受基类对象b 的话:method1(Base b), (25)7.1工厂模式 (26)7.1.1简单工厂 (26)7.1.2工厂方法 (26)7.2单例模式 (27)Client: (27)7.3适配器模式 (28)7.4组合模式 (29)Client: (29)7.5外观模式 (30)Client: (30)7.6代理模式 (31)7.7命令模式 (32)Client: (33)7.8观察者模式 (33)7.9策略模式 (35)Client: (35)IKeyPairGenerable desGenerator = (35)IKeyPairGenerable rsaGenerator = (36)IKeyPairGenerable ideaGenerator = (36)KeyPairManager manager = new KeyPairManager(); (36)7.10模版方法模式 (36)7.11参观者模式 (38)总价格 (40)Client: (40)第1章概述1.1前言代码之于程序员,就像零件之于机械工,庄稼之于农民,它是软件的基石,一行行代码都是程序员的心血经过日日夜夜凝结成的。
武汉中软卓越科技有限公司Java语言编码规范Table of Contents 目录1. 范围 (3)2. 术语和定义 (3)3. 排版规范 (4)3.1. 规则 (4)3.2. 建议 (6)4. 注释规范 (7)4.1. 规则 (7)4.2. 建议 (12)5. 命名规范 (14)5.1. 规则 (14)5.2. 建议 (15)6. 编码规范 (17)6.1. 规则 (17)6.2. 建议 (20)7. JTEST规范 (22)7.1. 规则 (22)7.2. 建议 (23)1.范围本规范规定了使用Java语言编程时排版、注释、命名、编码和JTest的规则和建议。
本规范适用于使用Java语言编程的案例、产品和项目。
2.术语和定义规则:编程时强制必须遵守的原则。
建议:编程时必须加以考虑的原则。
格式:对此规范格式的说明。
说明:对此规范或建议进行必要的解释。
示例:对此规范或建议从正、反两个方面给出例子。
3.排版规范3.1.规则3.1.1.*程序块要采用缩进风格编写,缩进的空格数为4个。
说明:对于由开发工具自动生成的代码可以有不一致。
3.1.2.*语句块分隔符左括号‘{’应与语句块引用代码在同一行,右括号‘}’应另起一行并与语句块引用代码左对齐。
在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。
示例:如下例子不符合规范。
for (...){... // program code}if (...){... // program code}void example_fun( void ){... // program code}应如下书写:for (...){... // program code}if (...){... // program code}void example_fun( void ){... // program code}3.1.3.*较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
java 代码规范Java代码规范是指在Java程序设计中遵循的一些规则和约定,旨在提高代码的可读性、可维护性和可移植性。
遵守代码规范可以帮助团队成员更好地理解和协作开发,提高代码的质量和可靠性。
本文将围绕Java代码规范展开讨论,包括命名规范、代码风格、注释规范、异常处理等方面的内容。
一、命名规范1.包名规范包名应该全小写,连接符可以使用小写字母和下划线,不推荐使用数字。
包名应该能够清晰地表达包所包含的内容,不要使用太长或者太短的包名。
2.类名规范类名应该采用驼峰命名法,首字母大写,类名应该能够清晰地表达类的用途,不要使用太长或者太短的类名。
如果类名由多个单词组成,应该遵循每个单词首字母大写的命名规范。
3.接口名规范接口名应该采用驼峰命名法,首字母大写,接口名应该能够清晰地表达接口的用途,不要使用太长或者太短的接口名。
如果接口名由多个单词组成,应该遵循每个单词首字母大写的命名规范。
4.变量名规范变量名应该采用驼峰命名法,首字母小写,变量名应该能够清晰地表达变量的用途,不要使用太长或者太短的变量名。
如果变量名由多个单词组成,应该遵循每个单词首字母小写的命名规范。
5.常量名规范常量名应该全大写,单词之间使用下划线分隔,常量名应该能够清晰地表达常量的用途,不要使用太长或者太短的常量名。
6.方法名规范方法名应该采用驼峰命名法,首字母小写,方法名应该能够清晰地表达方法的用途,不要使用太长或者太短的方法名。
如果方法名由多个单词组成,应该遵循每个单词首字母小写的命名规范。
二、代码风格1.缩进和空格缩进使用4个空格,不使用tab键。
在操作符前后使用空格,增强代码的可读性。
2.大括号的使用在类定义、方法定义、控制结构等的语句块后面使用大括号,增强代码的可读性。
3.代码行长度每行代码的长度不要超过80个字符,超过80个字符的代码应该使用换行符进行分割。
4.引号的使用字符串常量应该使用双引号,字符常量应该使用单引号。
java 编码规范《Java编码规范》1. 代码风格- 代码缩进:使用4个空格进行缩进,不使用制表符。
- 行长限制:每行代码不超过80个字符,超出则进行换行。
- 行尾空格:行尾不留空格。
- 行尾注释:行尾注释与代码之间至少保留2个空格的距离。
- 命名规范:使用驼峰命名法,类名首字母大写,变量和方法名首字母小写。
- 常量命名:常量使用全大写字母,并用下划线分隔单词。
- 空行:类与方法之间保留一个空行,方法内逻辑块之间保留一个空行。
2. 注释规范- 文件注释:每个源文件的头部必须包含文件注释,说明该文件的作者、日期等信息。
- 类注释:每个类的头部必须包含类注释,描述该类的作用、用法等。
- 方法注释:每个方法必须包含方法注释,描述该方法的功能、参数、返回值等。
- 代码注释:在代码中需要加入注释说明的地方,添加合理的注释来增加代码可读性。
3. 包和导入规范- 包名规范:包名全部小写,多个包名之间用英文句点"."分隔,采用反域名形式命名。
- 导入规范:不要使用通配符"*"导入整个包,应明确导入所需的类。
4. 类和接口规范- 类结构顺序:依次按照成员变量、构造方法、普通方法的顺序来编写类的结构。
- 成员变量声明:先声明公有的静态常量,再声明私有的静态变量,接着声明私有的实例变量。
- 构造方法:在类的开头部分声明构造方法,按照方法名和参数顺序进行编写。
- 方法和变量:局部变量应放在使用的最近位置上,避免声明太早或太迟,增加代码的可读性。
5. 异常处理规范- 异常的捕获和处理:在可能发生异常的地方进行捕获和处理,而不是简单地将异常抛出给上层调用者。
- 不要捕获并忽略异常:捕获异常后应该进行适当的处理,而不是简单地将异常信息打印出来或者忽略它们。
6. 标准化代码结构- 采用分层结构:将代码按照功能、模块进行划分,每个模块或类负责一部分功能。
- 逻辑清晰:保持代码逻辑清晰,避免重复、冗余的代码,使用合适的设计模式来优化代码结构。
Java语言编码规范原文出处:/docs/codeconv/html/CodeConvTOC.doc.html,译文出处:/,******************1 介绍(Introduction)1.1为什么要有编码规范编码规范对于程序员而言尤为重要,有以下几个原因:- 一个软件的生命周期中,80%的花费在于维护- 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护- 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码- 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品为了执行规范,每个软件开发人员必须一致遵守编码规范。
1.2版权声明本文档反映的是Sun MicroSystems公司,Java语言规范中的编码标准部分。
主要贡献者包括:Peter King,Patrick Naughton,Mike DeMoney,Jonni Kanerva,Kathy Walrath以及Scott Hommel。
本文档现由Scott Hommel维护,有关评论意见请发至***************.com2.文件名这部分列出了常用的文件名及其后缀。
2.1文件后缀Java程序使用下列文件后缀2.2常用文件名Java程序使用下列文件后缀3.文件组织一个文件由被空行分割而成的段落以及标识每个段落的可选注释共同组成。
超过2000行的程序难以阅读,应该尽量避免。
"Java源文件范例"提供了一个布局合理的Java程序范例。
3.1jAVA源文件每个Java源文件都包含一个单一的公共类或接口。
若私有类和接口与一个公共类相关联,可以将它们和公共类放入同一个源文件。
公共类必须是这个文件中的第一个类或接口。
Java源文件还遵循以下规则:- 开头注释(参见"开头注释")- 包和引入语句(参见"包和引入语句")- 类和接口声明(参见"类和接口声明")3.1.1开头注释所有的源文件都应该在开头有一个C语言风格的注释,其中列出类名、版本信息、日期和版权声明:/** Classname** Version information** Date** Copyright notice*/3.1.2包和引入语句在多数Java源文件中,第一个非注释行是包语句。
Java编程规范(DOC)预览说明:预览图片所展示的格式为文档的源格式展示,下载源文件没有水印,内容可编辑和复制Java编程规范目录Java编程规范 (1)1编码规则 (1)2命名规范 (7)2.1类名、变量名(非final)、方法名 (7)2.2驼峰式命名 (7)2.3不能使用没有任何含义的英文字母进行命名 (7)2.4不能使用拼音进行命名,统一使用准确的英文进行命名 (8)2.5包名 (8)2.6接口与类的命名 (8)2.7抽象类命名 (8)2.8实现类命名 (8)2.9工具类命名 (8)2.10变量命名 (8)2.115、方法命名 (9)2.12系统的命名约定 (9)1编码规则1、数据库操作、IO操作等需要使用结束close()的对象必须在try -catch-finally 的finally中close(),如果有多个IO对象需要close(),需要分别对每个对象的close()方法进行try-catch,防止一个IO对象关闭失败其他IO对象都未关闭。
手动控制事务提交也要进行关闭,对大对象进行关闭操作示例:try{// ... ...}catch(IOException ioe){//... ...}finally{try{out.close();}catch(IOException ioe){//... ...}try{in.close();}catch(IOException ioe){//... ...}}2、系统非正常运行产生的异常捕获后,如果不对该异常进行处理,则应该记录日志。
说明:此规则指通常的系统非正常运行产生的异常,不包括一些基于异常的设计。
若有特殊原因必须用注释加以说明。
logger.error(ioe,“[类.方法]描述”,参数);示例:try{//.... ...}catch(IOException ioe){logger.error(ioe);}3、自己抛出的异常必须要填写详细的描述信息。
JavaEE⼗三种规范JAVAEE平台由⼀整套服务(Services)、应⽤程序接⼝(APIs)和协议构成,它对开发基于Web的多层应⽤提供了功能⽀持,下⾯对JAVAEE中的13种技术规范进⾏简单的描述。
1、JDBC(Java Database Connectivity) JDBC API为访问不同的数据库提供了⼀种统⼀的途径,像ODBC⼀样,JDBC对开发者屏蔽了⼀些细节问题,另外,JDCB对数据库的访问也具有平台⽆关性。
2、JNDI(Java Naming and Directory Interface,Java命名和⽬录接⼝)JNDI是SUN公司提供的⼀种标准的Java命名系统接⼝,JNDI提供统⼀的客户端API,通过不同的访问提供者接⼝JNDI服务供应接⼝(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和⽬录系统,使得Java应⽤程序可以和这些命名服务和⽬录服务之间进⾏交互。
在没有JNDI之前:开发的时候,在连接数据库代码中需要对JDBC驱动程序类进⾏应⽤,通过⼀个URL连接到数据库。
但是这样存在问题,⽐如我要改⼀种数据库,是不是要更换驱动,更换URL。
每次都要进⾏这些配置和管理。
在有了JNDI之后:可以在J2ee容器中配置JNDI参数,定义⼀个数据源,在程序中,通过数据源名称引⽤数据源从⽽访问后台数据库。
在程序中定义⼀个上下⽂类,然后⽤content.lookup("就可以成功引⼊数据源了。
在DataSource中事先建⽴多个数据库连接,保存在数据库连接池中,当程序访问数据库时,只⽤从连接池中取空闲状态的数据库连接即可,访问结束,销毁资源,数据库链接重新回到连接池例如:数据源定义3、EJB(Enterprise EJB是sun的JavaEE服务器端组件模型,设计⽬标与核⼼应⽤是部署分布式应⽤程序。
⽤通俗的话来理解,就是把已经打包好的东西放到服务器中去执⾏,这样是凭借了java跨平台的优势,利⽤EJB技术部署分布式系统可以不限于特定的平台。
JavaEE程序编码规范2016修订记录目录JAVA程序编码规范 (1)1变量的命名规则 (1)1.1常量(包含静态的) (1)1.2类变量(静态变量)及实例变量 (1)1.3局部变量 (1)1.4参数 (2)1.5其它 (2)2方法的命名规则 (3)3类及接口的命名规则 (3)3.1一般类名 (3)3.2值对象 (3)3.3A CTION (3)3.4M Y B ATIS配置文件 (4)3.5DAO (4)3.6A PPLICATION S ERVICE (4)3.7工具类 (4)3.8门面类 (4)3.9代理类 (4)3.10异常类 (4)3.11接口类 (5)3.12接口实现类 (5)4作用域 (5)4.1类的作用域 (5)4.2方法的作用域 (5)4.3属性的作用域 (5)4.4局部变量的作用域 (5)5注释的编写规则 (6)6格式 (7)6.1缩进 (7)6.2每代码行的长度 (7)6.3大括号 (8)6.4空行 (8)6.5空格 (9)6.6IMPORT部分 (9)6.7数字 (9)7性能与安全 (10)7.1静态检查插件 (10)7.2空指针引用(NULL POINTER DEREFERENCE) (10)7.3数组引用问题(RETURN ARRAY) (10)7.4硬编码敏感数据(H ARD-CODED SENSE DATA) (10)7.5整数溢出 (10)7.6对象初始化 (10)7.7集合对象初始化容量 (11)7.8简单参数 (11)7.9F INAL类和方法 (11)7.10无用的代码 (11)7.11日志级别 (11)7.12序列化问题 (11)7.13通过名称比较类 (12)7.14类克隆 (12)7.15JDBC使用 (13)7.16SQL语句 (13)7.17数据库连接释放 (13)7.18使用存储过程 (13)7.19第三方组件 (14)8附件 (14)1 变量的命名规则1.1 常量(包含静态的)一个或多个英文单词的组合,所有字母均大写,单词之间以“_”分隔,如:public static final String UPDATE_FLAG = “T”;final double PI = 3.14;一般情况下常量的public等修饰符不可少。
1.2 类变量(静态变量)及实例变量一个或多个英文单词的组合,第一个单词的首字母小写,其他单词首字母均大写,其余所有字母均小写。
如:private ProjectSes projectSes;private static String providerUrl = “http://127.0.0.1”;private Logger logger = Logging.getLogger("TestLogger");一般情况下类变量(静态变量)及实例变量的public等修饰符不可少。
1.3 局部变量一个或多个英文单词的组合,一般采用Hungaryn naming法(匈牙利定义法),如下:以下是基本数据类型的前缀列表除上述情况以外的数据类型,都以obj作为前缀,后面跟一个能说明变量功能或意义单词作为变量,如:UserVO objUserVO;1.4 参数一个或多个英文单词的组合,第一个单词的首字母小写,其他单词首字母均大写,其余所有字母均小写。
如:public void setProjectVO(ProjectVO projectVO)public void setUserId(String userId)建议方法的参数不要超过5个,超过时可以将多个参数合并为一个对象进行传递。
1.5 其它常用数据类型的变量,采用固定的命名,包括以下几种:Connection conn;ResultSet rs;PreparedStatement pstmt;Statement stmt;数组变量命名与普通变量命名规则一致,如:int iProjectId[];public String userName[];每个变量的声明单独占一行。
不能一个类型同时声明两个变量。
如:int i, j; 这样的写法是不允许的。
不要在代码中出现不使用的变量,如果以后会用到或有其他用途要写上注释说明。
类名、变量名中含缩写词组:缩写词组全部大写,如:String strSQL;public class ProjectDAO{}2 方法的命名规则方法命名的基本原则:容易看懂一般的方法名采用两个单词动宾结构形式的名称,两个单词之间不要带其它符号,第二个单词的首字母大写,其它的都小写。
如:readBudget(int budgetId)、deleteBudget(int budgetId)只有一个动词形式的方法名不推荐使用。
不容易看明白的方法名或有歧义的方法名可采用多单词的形式,每两个单词之间不要带其它符号,从第二个单词开始,每个单词的首字母大写,其它的都小写。
如:readBudgetByProjectId(int projectId)、readBudgetByProjectIdAndYear(intprojectId,int year)方法命名不得采用缩写形式。
3 类及接口的命名规则3.1 一般类名一个或多个英文单词的组合,所有单词的首字母大写,其余所有字母均小写,如:public class ProjectUser {}3.2 值对象数据库表的逻辑名+VO,如:表PUB_DICTIONARY的值对象名为DictionaryVO。
3.3 Action表名/模块名+Action,如:字典的Action类名为DictionaryAction。
3.4 MyBatis配置文件表名/模块名+SQL.xml,如:字典模块的MyBatis配置文件命名为DictionarySQL.xml。
3.5 DAODAO类名为模块名+DAO,如:字典DAO类名为:DictionaryDAO3.6 Application ServiceApplication Service类名为模块名+AppService,如:字典Application Service类名为:DictionaryAppService 3.7 工具类工具类的类名为模块名+Util,如:字典的工具类名为:DictionaryUtil3.8 门面类门面类的类名为模块名+Facade,如:字典的门面类名为:DictionaryFacade3.9 代理类代理类的类名为模块名+Man,如:字典的代理类名为:DictionaryMan3.10 异常类异常类的类名为模块名+Exception,如:字典的异常类名为:DictionaryException3.11 接口类接口类的类名为模块名+Interface,如:字典的接口类名为:DictionaryInterface3.12 接口实现类接口实现类的类名为实现名+Imp,如:字典的接口实现类名为:DictionaryImp4 作用域4.1 类的作用域类的作用域保持最小范围。
供包外其它类引用的类才添加public作用域修饰符。
4.2 方法的作用域只供对象或类内部调用的方法必须使用private作用域修饰符。
包外不会调用的方法严禁使用public作用域修饰符。
4.3 属性的作用域静态常量(类常量)属性可以使用各种作用域修饰符。
对象属性变量严禁使用public作用域修饰符。
VO对象属性变量必须使用private作用域修饰符。
4.4 局部变量的作用域方法内的变量定义应该遵循最小作用域规则。
如:// iSize只在下面的for循环中使用int iSize = alItems.size();for(int i=0;i<iSize;i++){……………………………….}建议写成:for(int i=0,iSize = alItems.size();i<iSize;i++){……………………………….}属性是对象的特征,不要把非对象的属性定义为实例变量。
5 注释的编写规则所有类及接口文件要写文件头注释(包含版权等),版权中的年度代码书写的开始年度(Copyright (C) 2011),如下:/****************************************************************************** * Copyright (C) 2011 SunLine Information Technology Co.,Ltd* All Rights Reserved.* 本软件为SunLine开发研制。
未经本公司正式书面同意,其他任何个人、团体不得使用、* 复制、修改或发布本软件.*****************************************************************************/所有类及接口头要写类注释(包含作者、创建日期等),@author、@history中要书写中文名,如果注释的内容比较长则需要加“<br>”。
如下:/*** 技改项目业务代表实现类.实现新增项目,删除项目等方法,<br>* 提供对表现层的接口.* @author 张三* @since JDK1.4* @history 2004-10-15 张三新建*/类中必要的方法(包括私有方法)要写方法头注释。
其中返回值(@return)需要说明含义,包括整型,布尔型,集合等,如对于整形:@return 返回1表示成功,0表失败;对于集合类型要写明集合内元素的类型:@return UserVO的集合。
如果注释的内容比较长则需要加“<br>”,如下:/*** 修改投标人信息* @param bidderVO 投标人信息* @throws BidderException 修改异常* @throws NoPermissionException 没有修改权限* @return 修改成功返回1 没有修改返回0*/public int updateBidder(BidderVO bidderVO) throws BidderException对代码块的注释,注释语句放在代码块之上,用”//”进行注释,如果注释语句本身超过一行,则用”/* */”进行注释。
对某一行代码的注释,注释语句放在代码行的后面,用”//”进行注释。
建议代码块之间空一行。
如下:public void insertProject(ProjectVO projectVO) {// 新增项目信息iProjectId = Toolkit.getInstance().getNextKey("Project"); // 取项目ID logger.debug("Generate Project ID : " + iProjectId);Project objProject = projectHome.create(iProjectId);objProject.setProjectVO(projectVO);<空一行>/*从项目VO中取得申请人ID及联系人ID,并将申请人ID及联系人ID插入到PUB_ACCESS_CONTROL表*/projectVO.setProjectId(iProjectId);this.authProject(projectVO);}6 格式引入公司指定的格式化配置文件最新版本,使用Eclipse的格式化功能进行代码格式化。