JAVA编程规范
Java编程规范总结
Java编程规范总结命名:1. 为包、类、⽅法、变量取⼀个好名字,使代码易于理解2. 禁⽌使⽤魔⿁数字3. 常量命名,由全⼤写单词组成,单词间⽤下划线分隔,且使⽤ static final修饰4. 变量、属性命名,使⽤名词,并采⽤⾸字母⼩写的驼峰命名法5. ⽅法的命名,⽤动词和动宾结构,并采⽤⾸字母⼩写的驼峰命名法6. 类和接⼝的命名,采⽤⾸字母⼤写的驼峰命名法7. 包的命名,由⼀个或若⼲个单词组成,所有的字母均为⼩写8. 数组声明的时候使⽤ int[] index,⽽不要使⽤ int index[]注释:1. 尽量⽤代码来解释⾃⼰2. 注释应解释代码的意图,⽽不是描述代码怎么做的3. 保证注释与代码⼀致,避免产⽣误导4. 注释应与其描述代码位置相邻,放在所注释代码上⽅或右⽅,并与代码采⽤同样缩进5. 不要⽤注释保留废弃代码6. 不要⽤注释记录修改⽇志7. ⼀般单⾏注释⽤//,块注释⽤,JavaDoc注释⽤排版:1. 团队应遵守⼀致的排版风格2. 将排版风格固化到IDE的代码格式化配置⽂件中,并让整个团队使⽤3. 在不同的概念之间,增加空⾏4. 将逻辑紧密相关的代码放在⼀起5. 控制⼀⾏的宽度,不要超过120个字符6. 在不同的概念间(关键字、变量、操作符等)增加空格,以便清楚区分概念7. 采⽤缩进来区分不同层次的概念8. 将局部变量的作⽤域最⼩化9. 给if、for、do、while、switch等语句的执⾏体加⼤括号{}10. 控制⽂件的长度,最好不要超过500⾏变量和类型:1. 谨慎使⽤静态成员变量2. 避免随意进⾏类型强制转换,应改善设计,或在转换前⽤instanceof进⾏判断33. 需要精确计算时不要使⽤float和double4. 不能⽤浮点数作为循环变量5. 浮点型数据判断相等不能直接使⽤==6. 避免同⼀个局部变量在前后表达不同的含义7. 不要在单个的表达式中对相同的变量赋值超过⼀次8. 基本类型优于包装类型,注意合理使⽤包装类型⽅法:1. ⽅法设计的第⼀原则是要短⼩2. ⽅法设计应遵循单⼀职责原则(SRP),⼀个⽅法仅完成⼀个功能3. ⽅法设计应遵循单⼀抽象层次原则(SLAP)4. ⽅法设计应遵循命令与查询职责分离原则(CQRS)5. 不要把⽅法的⼊参当做⼯作变量/临时变量,除⾮特别需要6. 使⽤类名调⽤静态⽅法,⽽不要使⽤实例或表达式来调⽤7. 应明确规定对接⼝⽅法参数的合法性检查由调⽤者负责还是由接⼝⽅法本⾝负责8. ⽅法的参数个数不宜过多9. 谨慎使⽤可变数量参数的⽅法包、类和接⼝:1. 类和接⼝的设计应遵循⾯向对象SOLID设计原则2. 类的设计应遵循迪⽶特法则3. 类的设计应遵循“Tell,Don't ask”原则4. 类设计时优选组合⽽不是继承5. 除提供给外部使⽤的全局常量外,应尽量避免类成员变量被外部直接访问6. 避免在⽆关的变量或⽆关的概念之间重⽤名字,避免隐藏(hide)、遮蔽(shadow)和遮掩(obscure)7. 覆写(override)——⼦类与⽗类间8. 重载(overload)——类内部9. 隐藏(hide)——⼦类与⽗类间10. 遮蔽(shadow)——类内部11. 遮掩(obscure)——类内部12. 不要在⽗类的构造⽅法中调⽤可能被⼦类覆写的⽅法13. 覆写equals⽅法时,应同时覆写hashCode⽅法14. ⼦类覆写⽗类⽅法时应加上@Override注解15. 接⼝定义中去掉多余的修饰词16. 设计时,考虑类的可变性最⼩化异常:1. 只针对真正异常的情况才使⽤exception机制2. 在抛出异常的细节信息中,应包含能捕获失败的信息3. 对可恢复的情况使⽤受检异常(checked exception),对编程错误使⽤运⾏时异常(runtime exception)4. 不要忽略异常5. ⽅法注释和⽂档中要包含所抛出异常的说明6. ⽅法抛出的异常,应该与本⾝的抽象层次相对应7. 对第三⽅API抛出⼤量各类异常进⾏封装8. 使⽤异常来做错误处理,⽽⾮错误码9. 在finally块中不要使⽤return、break或continue使finally块⾮正常结束10. 不要直接捕获受检异常的基类Exception11. ⼀个⽅法不应抛出太多类型的异常12. 充分利⽤断⾔⽇志:1. ⽇志信息准确、繁简得当,满⾜快速定位的需要2. ⽇志的记录,不要使⽤ System.out 与 System.err 进⾏控制台打印,应该使⽤专⽤的⽇志⼯具(⽐如:slf4j+logback)进⾏处理3. ⽇志⼯具对象logger应声明为private static final4. ⽇志应分等级5. ⽇志中不要记录敏感信息多线程并发:1. 多线程访问同⼀个可变变量,需增加同步机制2. 禁⽌不加控制地创建新线程3. 创建新线程时需指定线程名4. 使⽤Thread对象的setUncaughtExceptionHandler⽅法注册Runtime异常的处理者(v1.5+)5. 不要使⽤Thread.stop⽅法,因为该⽅法本质是不安全的,使⽤它可能会导致数据遭到破坏6. 不要依赖线程调度器、线程优先级和yield()⽅法7. 采⽤Java1.5提供新并发⼯具代替wait和notify(v1.5+)8. 使⽤线程安全集合在多线程间共享可变数据9. 多线程操作同⼀个字符串相加,应采⽤StringBuffer10. 针对线程安全性,需要进⾏⽂档(javadoc)说明运算和表达式:1. 不要写复杂的表达式2. 运算时应避免产⽣溢出3. 采⽤括号明确运算的优先级控制语句:1. 采⽤for-each代替传统的for循环(v1.5+)2. 在switch语句的每⼀个case、和default中都放置⼀条break语句序列化:1. 尽量不要实现Serializable接⼝2. 序列化对象中的HashMap、HashSet或HashTable等集合不能包含对象⾃⾝的引⽤3. 实现Serializable接⼝的可序列化类应该显式声明 serialVersionUID泛型:1. 在集合中使⽤泛型(v1.5+)2. 类的设计可优先考虑泛型(v1.5+)3. ⽅法的设计可优先考虑泛型(v1.5+)4. 优先使⽤泛型集合,⽽不是数组(v1.5+)其他语⾔特性:1. 新代码不要使⽤已标注为@deprecated的⽅法2. 使⽤JDK⾃带的API或⼴泛使⽤的开源库,不要⾃⼰写类似的功能。
java 开发规范
java开发规范(一)java命名规范1、变量、成员、方法名统一采用驼峰命名(lowerCamelCase),做到见语知其义例子:变量——用户数据(userList)、方法——getUserData(int type)等。
说明:正常变量定义使用驼峰命名,特殊的如DTO\VO\DO等除外。
2、类名的定义(1)普通类名采用大写字母开始;(2)抽象类采用Abstract或Base开头。
例子:普通类——class UserModel,抽象类——abstract class AbstractUserDefinition等。
3、常量、类型、接口、子类的定义(1)常量使用全大写且单词之间用"_“隔开; (2)boolean变量不能使用is开头;(3)接口尽量不要修饰符、子类紧跟接口追加Impl。
例子:常量——SORT_TYPE,布尔类型——flag,接口——UserService,实现类——UserServiceImpl等。
说明:常量不可组装,需要原子性定义,不能出现"KEY”+SORT_TYPE 这种内部出现。
4、包名、异常、枚举、方法名称的定义(1)包名一律采用小写; (2)异常都采用_Exception结尾; (3)枚举都是以Enum结尾;(4)方法名称——根据方法内容采用如插入insert-*。
例子:异常——UserException,包名——com.test,枚举——UserEnum,方法名称——insertUser等。
5、领域模型定义规范:主要是以VO\DTO\DO等结尾例子:用户数据——UserDTO等(1)数据对象:xxxDO,xxx 即为数据表名。
(2)数据传输对象:xxxDTO,xxx为业务领域相关的名称。
(3)展示对象:xxxVO,xxx一般为网页名称。
(4)POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。
(二)代码格式规范1、括号代码要求左大括号前不换行、左大括号后换行、右大括号前换行、右大括号后还有else等代码则不换行;表示终止的右大括号后必须换行。
java编码规范文档
java编码规范文档# Java编码规范文档。
一、前言。
小伙伴们!当我们一起在Java的世界里畅游时,要是大家都按照一套约定俗成的编码规范来写代码,那我们的代码就像训练有素的军队一样,整齐又高效。
这份规范就是我们在Java编程旅程中的小指南,让我们的代码既容易理解,又方便维护。
二、命名规范。
# (一)包(package)命名。
1. 包名应该全部小写,用点(.)分隔单词。
就像你的小包裹要摆放得井井有条一样,包名也得规规矩矩。
例如:`com.example.myproject`,这看起来多清爽。
如果写成`Com.Example.MyProject`,那就像穿着奇装异服的士兵混在整齐的队伍里,很不协调。
# (二)类(class)命名。
1. 类名采用大驼峰命名法(UpperCamelCase),每个单词的首字母大写,不要包含下划线或者其他奇怪的符号。
这就好比给每个班级取一个正式又响亮的名字。
比如:`MyFirstClass`,而不是`my_first_class`或者`my first class`。
那些奇怪的写法就像给班级取个让人摸不着头脑的名字,可不好。
# (三)方法(method)命名。
1. 方法名采用小驼峰命名法(lowerCamelCase),第一个单词小写,后面每个单词首字母大写。
这就像给方法这个小助手取个清晰明了的名字,方便我们知道它是干什么的。
例如:`calculateSum`,而不是`Calculate_Sum`或者`CALCULATESUM`。
要是写成后面那种,就像一个小助手穿着奇装异服,你都不知道它是来帮忙做什么的。
# (四)变量(variable)命名。
1. 变量名同样采用小驼峰命名法。
变量就像一个个小盒子,我们得给它们取个能让人一眼就大概知道里面装什么东西的名字。
像`studentName`,你一看就知道这个变量可能是用来存学生名字的。
要是写成`student_name`或者`STUDENTNAME`,就有点让人迷糊啦。
JAVA编程规范(修订)
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代码的可读性、可维护性和可扩展性而制定的标准。
以下是一些常见的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编程规范的一部分,具体的规范还需要根据具体的项目和团队来制定。
遵循编程规范可以提高代码质量和可维护性,提升团队的协作效率。
Java语言编程规范(华为公司)
Java语言编程规范(华为公司)DKBA华为技术有限公司企业技术规范DKBAXXXX-2001.12代替(DKBA200106-003)Java语言编程规范2001-12-XX发布2001-12-XX实施华为技术有限公司发布VVVVVVV VVVVVVVVVVVX。
XVX.X VX.X VX.X VX.XVX.X 目次前言 .............................................................................. .. (3)1 范围112 规范性引用文件113 术语和定义114 排版规范124.1 规则121.*程序块要采用缩进风格编写,缩进12的空格数为4个。
122.*分界符(如大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。
在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。
133.*较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
134.*不允许把多个短语句写在一行中,即一行只写一条语句5.*if, for, do, while, case,13switch, default 等语句自占一行,且if, for, do, while等语句的执行语句无论多少都要加括号{}。
6.*相对独立的程序块之间、变量说明13之后必须加空行。
7.*对齐只使用空格键,不使用TAB键。
14VVVVVVV VVVVVVVVVVVX。
XVX.X VX.X VX.X VX.XVX.X 8.*在两个以上的关键字、变量、常量14进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如.),后不应加空格。
java代码规范
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代码规则标准Java代码规则标准可以参考以下内容:- 类命名:- 抽象类:适用的设计模式为模板模式。
抽象是自下往上的设计。
由具体实现推断出抽象方法。
建议以`Abstract`开头。
- 枚举类:枚举是由JVM来保证的单例。
可以用来做单例类。
枚举类常用来做值判断,不建议每次进行循环判断得到实例。
建议由内部维护一个`map`类型,当做`cache`。
此方法建议放在`static`静态代码块中实现。
- 工具类:工具类常为无状态对象,无状态对象都是线程安全对象,建议使用`final`修饰。
工具类中避免出现业务属性,如果出现业务属性,抽象出领域层。
- 异常类:建议保持异常链。
- 接口实现类:众所周知。
- 设计模式相关类:- 处理特定功能的:其主要的目的是代码可重复使用。
- 测试类:- 领域模型载体:- 方法命名:- 布尔判断方法:- 检查的方法:- 按需求才执行的方法:- 异步相关方法:- 回调方法:- 操作对象生命周期的方法:- 与集合操作相关的方法:- 数据增删改查相关的方法:- 成对出现的动词:- 获取必须的参数:- 获取数据并对数据进行某种处理:- 方法编程建议:- 方法复杂度:凡事逻辑判断语句均为复杂度。
当一个方法中出现了大于等于10个复杂度,建议根据方法实现进行业务抽离。
在编写Java代码时,需要遵循一定的规则和标准,以提高代码的可读性、可维护性和可扩展性。
你可以根据项目的具体需求和团队的约定来选择合适的规范。
(完整word版)JAVA代码规范详细版
JAVA代码规范本Java代码规范以SUN的标准Java代码规范为基础,为适应我们公司的实际需要,可能会做一些修改。
本文档中没有说明的地方,请参看SUN Java标准代码规范。
如果两边有冲突,以SUN Java标准为准。
1. 标识符命名规范1.1 概述标识符的命名力求做到统一、达意和简洁。
1.1.1 统一统一是指,对于同一个概念,在程序中用同一种表示方法,比如对于供应商,既可以用supplier,也可以用provider,但是我们只能选定一个使用,至少在一个Java项目中保持统一。
统一是作为重要的,如果对同一概念有不同的表示方法,会使代码混乱难以理解。
即使不能取得好的名称,但是只要统一,阅读起来也不会太困难,因为阅读者只要理解一次。
1.1.2 达意达意是指,标识符能准确的表达出它所代表的意义,比如:newSupplier, OrderPaymentGatewayService等;而supplier1, service2,idtts等则不是好的命名方式。
准确有两成含义,一是正确,而是丰富。
如果给一个代表供应商的变量起名是order,显然没有正确表达。
同样的,supplier1, 远没有targetSupplier意义丰富。
1.1.3 简洁简洁是指,在统一和达意的前提下,用尽量少的标识符。
如果不能达意,宁愿不要简洁。
比如:theOrderNameOfTheTargetSupplierWhichIsTransfered 太长,transferedTargetSupplierOrderName则较好,但是transTgtSplOrdNm就不好了。
省略元音的缩写方式不要使用,我们的英语往往还没有好到看得懂奇怪的缩写。
1.1.4 骆驼法则Java中,除了包名,静态常量等特殊情况,大部分情况下标识符使用骆驼法则,即单词之间不使用特殊符号分割,而是通过首字母大写来分割。
比如: supplierName, addNewContract,而不是supplier_name, add_new_contract。
java 代码规范
java 代码规范Java代码规范是指在Java程序设计中遵循的一些规则和约定,旨在提高代码的可读性、可维护性和可移植性。
遵守代码规范可以帮助团队成员更好地理解和协作开发,提高代码的质量和可靠性。
本文将围绕Java代码规范展开讨论,包括命名规范、代码风格、注释规范、异常处理等方面的内容。
一、命名规范1.包名规范包名应该全小写,连接符可以使用小写字母和下划线,不推荐使用数字。
包名应该能够清晰地表达包所包含的内容,不要使用太长或者太短的包名。
2.类名规范类名应该采用驼峰命名法,首字母大写,类名应该能够清晰地表达类的用途,不要使用太长或者太短的类名。
如果类名由多个单词组成,应该遵循每个单词首字母大写的命名规范。
3.接口名规范接口名应该采用驼峰命名法,首字母大写,接口名应该能够清晰地表达接口的用途,不要使用太长或者太短的接口名。
如果接口名由多个单词组成,应该遵循每个单词首字母大写的命名规范。
4.变量名规范变量名应该采用驼峰命名法,首字母小写,变量名应该能够清晰地表达变量的用途,不要使用太长或者太短的变量名。
如果变量名由多个单词组成,应该遵循每个单词首字母小写的命名规范。
5.常量名规范常量名应该全大写,单词之间使用下划线分隔,常量名应该能够清晰地表达常量的用途,不要使用太长或者太短的常量名。
6.方法名规范方法名应该采用驼峰命名法,首字母小写,方法名应该能够清晰地表达方法的用途,不要使用太长或者太短的方法名。
如果方法名由多个单词组成,应该遵循每个单词首字母小写的命名规范。
二、代码风格1.缩进和空格缩进使用4个空格,不使用tab键。
在操作符前后使用空格,增强代码的可读性。
2.大括号的使用在类定义、方法定义、控制结构等的语句块后面使用大括号,增强代码的可读性。
3.代码行长度每行代码的长度不要超过80个字符,超过80个字符的代码应该使用换行符进行分割。
4.引号的使用字符串常量应该使用双引号,字符常量应该使用单引号。
华为JAVA编程规范
说明:阅读代码更加清晰,减少错误产生 示例: if (a>b) {
说明:异常注释用@exception或@throws表示,在JavaDoc中两者等价,但推荐用@exception标注 Runtime异常,@throws标注非Runtime异常。异常的注释必须说明该异常的含义及什么条件下抛 出该异常。
Page 5 , Total 19
密级:内部公开
规则7 注释应与其描述的代码相近,对代码的注释应放在其上方,并与其上面的代码用空行隔 开,注释与所描述内容进行同样的缩排。(1.42+)
规则12 对重载父类的方法必须进行@Override声明(5.0+)
Page 6 , Total 19
密级:内部公开
说明:可清楚说明此方法是重载父类的方法,保证重载父类的方法时不会因为单词写错而造成错 误(写错方法名或者参数个数,类型都会编译无法通过) 示例: @Override public void doRequest(SipServletRequest req) throws ServletException,
分配对应日志类型的logreader指定类型查询时间段条件和反复器缓冲数查询时间为左包含原则即starttimeendtimeparamlogtypename日志类型名在配置文件中定义的paramstarttime查询日志的开始时间paramendtime查询日志的结束时间paramloglevel查询日志的级别paramusername查询该用户的日志parambuffernum日志反复器缓冲记录数return结果集日志反复器since12publicstaticlogiteratorreadstringlogtypedatestarttimedateendtimeintloglevelstringusernameintbuffernum规则6对于方法内部用throw语句抛出的异常必须在方法的注释中标明对于所调用的其他方法所抛出的异常选择主要的在注释中说明
Java编程规范(10页)免费下载.pdf
程序注释
程序注释有四种格式:块注释格式,单行注释,跟随注释,行尾注释
¾ 块注释格式 块注释主要用于描述:文件、方法、数据结构和算法。一般在文件或者方法定义的
之前使用。也可以用在方法定义里面,如果块注释放在函数或者方法定义里,它必须与 它所描述的代码具有相同的缩进形式。
块注释应该用一个空行开头,以便于代码部分区分开来。 块注释举例:
会打字、5分钟快速自助建网站易启建站网免费提供建站平台,商业网站1年仅60元
简单语句
每行最多包含一个语句。
例如:
argv++;
// 正确
argc++;
// 正确
argv++; argc--; // 错误,应该避免这样写
组合语句
组合语句使用大括号括起来的一串语句。
1. 大括号中的语句比组合语句多一级缩进。
命名规则为: com.sinosoft.系统名[.模块名].xxx.xxx 具体参错误!未找到引用源。
包命名举例: com.sinosoft.platform.bl.facade com.sinosoft.platform.dto.domain
类命名规范 类名应该是名词,并且是大小写混合的。首字母要大写。尽量保证类名简单并且描
}
¾ 行尾注释 注释标记“//”能够注释一行或者该行由“//”开始直到行尾的部分。行尾注释不
能用在多行文本注释中。但它可以将多行代码注释掉。这三种注释方法举例如下。
if (foo > 1) {
// Do a double-flip.
...
}
else{
return false;
// Explain why here.
Java开发规范(参照阿里规范改编)
Java开发规范(参照阿⾥规范改编)JAVA 开发规范v1.0.0 2021/08/27本篇规范基于阿⾥巴巴、华为的开发⼿册,补充了⼀些细节。
规范不是为了约束和禁锢⼤家的创造⼒,⽽是为了帮助⼤家能够在正确的道路上,尽可能的避免踩坑和跑偏。
规范可以让我们⽆论单枪匹马还是与众⼈同⾏的时候都能得⼼应⼿。
规范可以让我们在⾯对⽇益变态的需求和做代码接盘侠的时候,更优雅从容。
⼀、编程规范1、好代码的原则我们参考 Kent Beck 的简单设计四原则来指导我们的如何写出优秀的代码,如何有效地判断我们的代码是优秀的。
通过所有测试(Passes its tests):强调的是外部需求,这是代码实现最重要的尽可能消除重复 (Minimizes duplication):代码的模块架构设计,保证代码的正交性,保证代码更容易修改尽可能清晰表达 (Maximizes clarity):代码的可阅读性,保证代码是容易阅读的更少代码元素 (Has fewer elements):保证代码是简洁的,在简洁和表达⼒之间,我们更看重表达⼒以上四个原则的重要程度依次降低,这组定义被称做简单设计原则。
22-1全部采⽤⼩写⽅式,以中划线分隔。
正例:mall-management-system / order-service-client / user-api反例:mall_management-system / mallManagementSystem / orderServiceClient2-2模块名称:{项⽬名称}-{模块名称} 模块名称简洁体现职责模块名字作为模块组件的名称(即maven中的标签)2-3包名不应该⽤来表达模块完整的意思,包名应该仅⽤作与同包下的其他包做区分。
但尽可能使⽤单个单词命名,如果单个单词⽆法正确表达,可采⽤.分割,实在不⾏可采⽤全部单词⼩写(参考的spring命名)2-4类名使⽤ UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:DO / BO / DTO / VO / AO ;抽象类命名使⽤ Abstract 或 Base 开头;异常类命名使⽤ Exception 结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾;如果使⽤到了设计模式,建议在类名中体现出具体模式;枚举类名建议带上 Enum 后缀,枚举成员名称需要全⼤写,单词间⽤下划线隔开。
java代码开发规范
java代码开发规范Java代码开发规范(Java Coding Convention)是一组编写Java 代码的规范和约定,以提高代码的可读性、可维护性和可重用性。
下面是一个包含大约1000字的Java代码开发规范概述:1. 命名规范:- 类名使用大写开头的驼峰式命名法,如MyClass。
- 方法名和变量名使用小写开头的驼峰式命名法,如myMethod。
- 常量名使用全大写字母和下划线的命名法,如MY_CONSTANT。
- 包名使用全小写字母,可以使用多级包名,如com.example.myproject。
2. 缩进和空格:- 使用4个空格进行代码块缩进。
- 除了特殊情况,每行代码最多120个字符。
- 操作符前后加上空格,如a + b。
3. 注释:- 使用Javadoc风格的类、方法和变量注释。
- 注释应该简洁明了,不要使用废话或无关信息。
- 注释应该更新以反映代码的变化。
4. 源文件:- 每个源文件只包含一个公有类。
- 源文件应该以UTF-8编码保存。
- 导入语句应该按照字母顺序排序。
5. 类的结构:- 每个类应该包含类的成员变量、构造方法、公有方法和私有方法,按照这个顺序。
- 成员变量应该使用private修饰,并提供相应的getter和setter方法。
- 公有方法应该提供必要的参数检查和异常处理。
6. 代码块:- 使用大括号包围代码块,即使代码块只有一行。
- 尽量减少嵌套层次,避免深层次的if-else或循环嵌套。
- switch语句应该包含default情况,并在每个case结束后加上break。
7. 异常处理:- 每个抛出异常的方法都应该声明可能抛出的异常类型。
- 在需要捕获异常的地方使用try-catch语句,并处理异常。
8. 并发编程:- 尽量使用线程安全的类和方法。
- 保护共享资源时使用synchronized关键字或者Lock对象。
9. 测试代码:- 每个公有类应该有相应的单元测试类。
jtg规范
jtg规范JTG规范,全称是《Java编码规范》,是由中国石油天然气股份有限公司集团技术开发中心(简称JTG)制定的一套用于Java编程的规范和指南。
该规范旨在提高代码的质量、可读性和可维护性,促进团队协作,降低项目风险和成本。
一、命名规范1. 类、接口、枚举的命名应使用大驼峰式命名法,即每个单词的首字母大写,无下划线或缩写。
2. 方法、变量、参数的命名应使用小驼峰式命名法,即第一个单词小写,后续单词首字母大写,无下划线或缩写。
二、代码风格规范1. 缩进使用4个空格。
2. 每行代码的长度不超过80个字符。
3. 使用花括号括起的代码块,左花括号和首个代码字符在一行,右花括号独占一行,并且与左花括号的首个字符对齐。
4. 一行只写一条语句,不要使用逗号表达式。
5. 避免行尾空格和多余的空行。
6. 注释应使用Javadoc注释格式,给出功能描述、参数说明和返回值说明。
三、Java语言规范1. 类和接口的顺序依次是:类注释、import语句、类声明,各部分之间用空行分隔。
2. 方法的顺序依次是:方法注释、修饰符、方法名、参数列表、返回值类型、方法体,各部分之间用空行分隔。
3. 代码编写避免使用魔法值,应定义常量代替,提高可读性和可维护性。
4. 使用try-catch块处理异常,不要将异常抛出。
5. 在使用循环控制语句时,应使用带标签的break和continue,避免混淆和错误。
四、代码注释规范1. 类和接口的注释应包含以下内容:功能描述、作者信息、创建日期、修改日志等。
2. 方法的注释应包含以下内容:方法功能、参数说明、返回值说明、抛出异常说明等。
并对特殊情况进行说明。
3. 变量和常量的注释应包含定义说明、用途说明等。
4. 注释内容清晰明了,不要出现错误或低效的注释。
五、命名约定1. 类和接口的命名应表达清晰的含义,避免使用无意义的命名。
2. 变量的命名应具有描述性,不要使用单个字符或数字作为变量名。
3. 基本数据类型和常量的命名应使用全部大写,单词间用下划线连接。
java代码编写规范
java代码编写规范Java代码编写规范是为了保持代码的一致性、可读性、可维护性和可扩展性而制定的一套规则。
以下是一些常见的Java代码编写规范:1. 命名规范:- 类名使用大写字母开头的驼峰命名法,如MyClass。
- 方法名使用小写字母开头的驼峰命名法,如myMethod。
- 变量名使用小写字母开头的驼峰命名法,并能直观地描述变量的含义,如myVariable。
- 常量名使用全大写的下划线命名法,如MAX_SIZE。
2. 缩进和空格:- 使用4个空格进行缩进,不要使用Tab键。
- 运算符之间加空格,如 a + b。
- 逗号之后加空格,如int a, int b。
- 括号之间加空格,如if (condition)。
- 方法和类的左括号不另起一行。
3. 注释规范:- 使用Javadoc格式进行注释,包括类、方法和成员变量的说明。
- 每个方法需说明参数、返回值和可能抛出的异常。
- 不要保留没有用的注释。
- 注释应该与代码保持一致,不要误导阅读者。
4. 类和方法的设计:- 类应该具有单一的职责,不要包含无关的功能。
- 方法应该具有清晰的目的和语义,不要过长或过于复杂。
- 类和方法应该尽量避免过多的参数,如果参数过多,可以考虑使用封装对象。
5. 异常处理:- 对于可能抛出的异常,应该根据情况进行合理的处理,而不是简单地忽略或抛出异常。
- 使用try-catch语句来捕获并处理异常,避免在代码中出现不受控制的异常。
6. 代码重构:- 定期进行代码重构,提高代码的可读性和可维护性。
- 删除无用的代码和注释。
- 提取公共代码块,避免重复的代码。
7. 包名和导入:- 包名应该以小写字母开头,使用有意义的命名。
- 导入语句应该只导入使用到的类,不要使用通配符导入。
8. 代码格式化:- 使用自动代码格式化工具来保持代码的一致性,如Eclipse 的代码格式化功能。
9. 单元测试:- 编写单元测试来验证代码的正确性和可靠性。
《Java编程开发》课程标准
《Java编程开发》课程标准一、课程概要二、课程定位本课程是电子信息工程技术专业和软件技术专业的一门专业基础课程,是电子信息工程技术和软件技术专科生专业技能的重要组成部分。
旨在培养学生的基础编程能力,为以后的 Android课程打好基础。
学生的基础打好对以后的实训及就业会有很大帮助。
软件技术专业的培养目标是培养出既要有熟练的掌握软件编程的动手操作能力,又要具备对软件工程的规范进行开发和基本的软件架构能力。
能够独立解决面临任务、充满活力、有创新意识的软件技能型人才。
重视基本知识、基本理论和基本技能的传授,注重先进实用技能的学习和学生专业可持续自我发展能力的培养及综合素质的提高。
二、教学目标总体目标通过本课程的教学对学生进行面向对象程序设计的基本训练,掌握基本语法和一些常用函数,掌握面向Java的基础知识和基本技能,树立面向对象程序设计的基本思想,熟悉常用的算法与编程技巧,掌握一般的排错能力,具备初步的编程解决实际问题的能力,养成良好的编程习惯,培养严谨务实的分析问题与解决问题能力,激发学生的兴趣和创新意识,锻炼学生的动手实践的本领。
并为后续的应用性课程和系统开发课程打好软件基础。
本教学大纲要求授课教师采用课堂教学与实验教学相结合的方式,以利于学生理论联系实际,进一步理解教材内容。
(一)知识目标(工具性知识、专业知识)1、掌握 Java 编程基本语法及控制流语句。
能够编写简单的应用程序,在程序中合理的使用表达式、运算符和控制流语句。
2、掌握 OOP 面向对象编程思想。
能够独立抽象出实体的属性、行为,在 OOP 编程中合理使用对面向对象的封装、继承、多态特性。
3、掌握 Java 异常处理机制。
掌握异常处理分类,能够独立编写具有异常处理的简单应用程序。
4、熟练使用 JavaSE 基础类。
熟练使用常用类库如 lang 包、util 包、io 包在编写程序时,能够合理使用 JavaSE 中的常用类库。
5、掌握线程的创建和执行顺序,线程的控制和同步,以及线程的通信。
java语言规范
java语言规范Java语言规范是指用于指导Java程序设计的一系列准则和规范。
遵循Java语言规范可以帮助程序员编写出清晰、可读性强、稳定、可维护和易于理解的Java代码。
以下是Java语言规范的一些重要准则和规范:1. 标识符:Java中的标识符是用于命名变量、类、方法等的。
标识符必须以字母、下划线或者美元符号开头,后面可以使用字母、数字、下划线或者美元符号。
标识符不能是Java的保留字。
2. 区分大小写:Java是区分大小写的语言,变量名、方法名等的大小写是敏感的。
3. 缩进和空格:为了提高代码可读性,应该在代码块开始和结束处适当缩进,并且在关键字、运算符等之间使用空格,不要把多个语句写在同一行。
4. 注释:Java有三种注释方式:块注释,行注释和文档注释。
块注释用/* ... */包围,行注释用//开头,文档注释是指以/** ... */包围的注释,一般用于生成API文档。
5. 常量:Java中的常量是指在程序执行期间不能被改变的值。
常量一般使用关键字final声明,并采用全大写字母的命名方式。
6. 类和接口命名:类和接口的命名一般采用大驼峰命名法,即每个单词首字母大写,例如MyClass,而不是myClass或者MYClass。
7. 变量和方法命名:变量和方法的命名一般采用小驼峰命名法,即第一个单词的首字母小写,后面的单词首字母大写,例如myVariable,myMethod。
8. 方法长度和复杂性:为了提高代码的可读性和可维护性,一个方法的长度应该适度,并且控制方法的复杂性。
推荐一个方法的长度不超过一屏,并且只做一件事情。
9. 异常处理:Java提供了异常机制来处理程序运行时产生的异常。
程序员应该适当捕捉和处理异常,并给用户提供友好的提示信息。
10. 类设计:一个类应该有清晰的职责和功能,并且遵循高内聚、低耦合的设计原则。
一个类的命名应该反映它的功能,并且应该保持单一职责原则。
以上只是Java语言规范的一部分,还有很多准则和规范可以帮助程序员编写高质量的Java代码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 Java 编程规范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("Session destroyed,call-id"+ event.getSession().getCallId());}规则4不允许把多个短语句写在一行中,即一行只写一条语句(1.42+)说明:阅读代码更加清晰示例:如下例子不符合规范。
Object o = new Object(); Object b = null;规则5if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while,switch等语句的执行语句无论多少都要加括号{},case 的执行语句中如果定义变量必须加括号{}。
(1.42+)说明:阅读代码更加清晰,减少错误产生示例:if (a>b){doStart();}case x:{int i = 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+)Page 2 , Total 18示例:public static final String str = “abc”;1.2 注释1.2.1 规则规则1源程序注释量必须在30%以上。
(1.42+)说明:由于每个文件的代码注释不一定都可以达到30%,建议以一个系统内部模块作为单位进行检查规则2包的注释:写入一个名为package.html的HTML格式的说明文件放入包所在路径。
包的注释内容:简述本包的作用、详细描述本包的内容、产品模块名称和版本、公司版权。
(1.42+)说明:方便JavaDoc收集,方便对包的了解示例:com/huawei/iin/websmap/comm/package.html<html><body><p>一句话简述。
<p>详细描述。
<p>产品模块名称和版本<br>公司版权信息</body></html>示例:<html><body><P>为 WEBSMAP 提供通信类,上层业务使用本包的通信类与 SMP-B 进行通信。
<p>详细描述。
<p>IIN V100R001 WEBSMAP<br>(C) 版权所有 2000-2001 </body></html>规则3类和接口的注释放在class或者interface 关键字之前,import 关键字之后。
注释主要是一句话功能简述与功能详细描述。
类注释使用“/** */”注释方式(1.42+)说明:方便JavaDoc收集,没有import可放在package之后。
注释可根据需要列出:作者、内容、功能、与其它类的关系等。
功能详细描述部分说明该类或者接口的功能、作用、使用方法和注意事项,每次修改后增加作者和更新版本号和日期,@since 表示从那个版本开始就有这个类或者接口,@deprecated 表示不建议使用该类或者接口。
Page 3 , Total 18/*** 〈一句话功能简述〉* 〈功能详细描述〉* @author [作者](必须)* @see [相关类/方法](可选)* @since [产品/模块版本] (必须)* @deprecated (可选)*/示例:package m;import java.util.*;/*** LogManager 类集中控制对日志读写的操作。
* 全部为静态变量和静态方法,对外提供统一接口。
分配对应日志类型的读写器,* 读取或写入符合条件的日志纪录。
* @author 张三,李四,王五* @see LogIteraotor* @see BasicLog* @since CommonLog1.0*/public class LogManager规则4类属性(成员变量)、公有和保护方法注释:写在类属性、公有和保护方法上面,注释方式为“/** */”.(1.42+)示例:/*** 注释内容*/private String logType;/*** 注释内容*/public void write()规则5公有和保护方法注释内容:列出方法的一句话功能简述、功能详细描述、输入参数、输出参数、返回值、异常等。
(1.42+)格式:/*** 〈一句话功能简述〉* 〈功能详细描述〉Page 4 , Total 18* @param [参数1] [参数1说明]* @param [参数2] [参数2说明]* @return [返回类型说明]* @exception/throws [异常类型] [异常说明]* @see [类、类#方法、类#成员]* @since [起始版本]* @deprecated*/说明:@since 表示从那个版本开始就有这个方法,如果是最初版本就存在的方法无需说明;@exception或throws 列出可能仍出的异常;@deprecated 表示不建议使用该方法。
示例:/*** 根据日志类型和时间读取日志。
* 分配对应日志类型的LogReader,指定类型、查询时间段、条件和反复器缓冲数,* 读取日志记录。
查询条件为null或0的表示没有限制,反复器缓冲数为0读不到日志。
* 查询时间为左包含原则,即 [startTime, endTime) 。
* @param logTypeName 日志类型名(在配置文件中定义的)* @param startTime 查询日志的开始时间* @param endTime 查询日志的结束时间* @param logLevel 查询日志的级别* @param userName 查询该用户的日志* @param bufferNum 日志反复器缓冲记录数* @return 结果集,日志反复器* @since 1.2*/public static LogIterator read(String logType, Date startTime, Date endTime, int logLevel, String userName, int bufferNum)规则6对于方法内部用throw语句抛出的异常,必须在方法的注释中标明,对于所调用的其他方法所抛出的异常,选择主要的在注释中说明。
对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。
(1.42+)说明:异常注释用@exception或@throws表示,在JavaDoc中两者等价,但推荐用@exception标注Runtime异常,@throws标注非Runtime异常。
异常的注释必须说明该异常的含义及什么条件下抛出该异常。
规则7注释应与其描述的代码相近,对代码的注释应放在其上方,并与其上面的代码用空行隔开,注释与所描述内容进行同样的缩排。
(1.42+)说明:可使程序排版整齐,并方便注释的阅读与理解。
示例:/** 注释Page 5 , Total 18*/public void example2( ){// 注释CodeBlock One// 注释CodeBlock Two}/** 注释*/public void example( ){// 注释CodeBlock One// 注释CodeBlock Two}规则8对于switch语句下的case语句,必须在每个case分支结束前加上break语句。
(1.42+)说明:break才能真正表示该switch执行结束,不然可能会进入该case以后的分支。
至于语法上合法的场景“一个case后进入下一个case处理”,应该在编码设计上就避免。
规则9修改代码同时修改相应的注释,以保证注释与代码的一致性。
不再有用的注释要删除。
(1.42+)规则10注释的内容要清楚、明了,含义准确,防止注释二义性。
(1.42+)说明:错误的注释不但无益反而有害。
规则11避免在注释中使用缩写,特别是不常用缩写。
(1.42+)说明:在使用缩写时或之前,应对缩写进行必要的说明。
规则12对重载父类的方法必须进行@Override声明(5.0+)说明:可清楚说明此方法是重载父类的方法,保证重载父类的方法时不会因为单词写错而造成错误(写错方法名或者参数个数,类型都会编译无法通过)示例:@Overridepublic void doRequest(SipServletRequest req) throws ServletException, IOException1.2.2 建议建议1避免在一行代码或表达式的中间插入注释。
(1.42+)Page 6 , Total 18说明:除非必要,不应在代码或表达中间插入注释,否则容易使代码可理解性变差。
建议2在代码的功能、意图层次上进行注释,提供有用、额外的信息。
(1.42+)说明:注释的目的是解释代码的目的、功能和采用的方法,提供代码以外的信息,帮助读者理解代码,防止没必要的重复注释信息。