Java编程规范

合集下载

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开发规范(一)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的世界里畅游时,要是大家都按照一套约定俗成的编码规范来写代码,那我们的代码就像训练有素的军队一样,整齐又高效。

这份规范就是我们在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 编码规则

java 编码规则
Java编码规则是指在编写Java程序时需要遵循的一系列规范和约定,旨在提高代码的可读性、可维护性和可扩展性。

下面是一些常见的Java编码规则:
1. 代码缩进:使用四个空格进行缩进,不要使用制表符。

2. 代码行长度:每行代码尽量不超过80个字符,超过时可以换行。

3. 命名规范:使用驼峰命名法,即首字母小写,后面每个单词的首字母大写。

4. 类名:类名使用名词或名词短语,首字母大写。

5. 方法名:方法名使用动词或动词短语,首字母小写。

6. 变量名:变量名使用名词或名词短语,首字母小写。

7. 常量名:常量名应全部大写,并用下划线分隔单词。

8. 注释:为代码添加适当的注释,解释代码的用途、实现细节等。

9. 空格使用:在运算符两侧、逗号后面、冒号后面等地方使用空格,增加代码的可读性。

10.代码格式化:使用合适的缩进、空行、大括号等格式化代码,以增强可读性。

遵循这些Java编码规则可以使你的代码更易于理解和维护。

此外,还可以使用一些静态代码分析工具来自动检查代码是否符合编码规范,如Checkstyle、FindBugs等。

编码规则的遵守不仅仅是个人习惯的问题,也是一个团队合作的重要环节,通过统一的编码规范可以提高代码的一致性,方便开发人员的协作和项目的维护。

JAVA编程规范(修订)

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代码的可读性、可维护性和可扩展性而制定的标准。

以下是一些常见的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语言编程规范(华为公司)

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代码规范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。

1。

1。

5 英文vs 拼音尽量使用通俗易懂的英文单词,如果不会可以向队友求助,实在不行则使用汉语拼音,避免拼音与英文混用.比如表示归档,用archive比较好,用pigeonhole则不好,用guiDang 尚可接受。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java编程规范本文引用阿里Java开发手册。

GitHub阅读地址:目录编程规约- 命名规约- 常量定义- 格式规范- OOP规约- 集合处理- 并发处理- 控制语句- 注释规约- 其他- 异常处理- 建表规约- 索引规约- SQL规约- ORM规约编程规约命名规约1、【强制】所有编程相关命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束反例: _name / __name / $Object / name_ / name$ / Object$12、【强制】所有编程相关的命名严禁使用拼音与英语混合的方式,更不允许直接使用中的方式。

说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。

注意,即纯拼音的命名方式也要避免采用。

反例: DaZhePromotion [打折] / getPingfenByName() [评分] / int 变量 = 3;正例: ali / alibaba / taobao / cainiao / aliyun / youku / hangzhou 等国际通用的名称,可视为英文。

12345 3、【强制】类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:(领域模型的相关命名) DO / DTO / VO / DAO 等。

正例: MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion反例: macroPolo / UserDo / XMLService / TCPUDPDeal/ TAPromotion1234、【强制】方法名、参数名、成员变量、局部变量都统一只用 lowerCamelCase 风格,必须遵从驼峰形式。

正例: localValue / getHttpMessage() / inputUserId15、【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。

正例: MAX_STOCK_COUNT反例: MAX_COUNT1236、【强制】抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾。

7、【强制】中括号是数组类型的一部分,数组定义如下:String[] args ;反例:请勿使用 String args[] 的方式来定义18、【强制】 POJO 类中的任何布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。

反例:定义为基本数据类型 boolean isSuccess;的属性,它的方法也是 isSuccess(), RPC框架在反向解析的时候,“以为”对应的属性名称是 success,导致属性获取不到,进而抛出异常。

19、【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。

包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。

正例:应用工具类包名为、类名为 MessageUtils (此规则参考 spring的框架结构)110、【强制】杜绝完全不规范的缩写,避免望文不知义。

反例:某业务代码>AbstractClass“缩写”命名成AbsClass; condition“缩写”命名成condi,此类随意缩写严重降低了代码的可阅读性。

111、【推荐】如果使用到了设计模式,建议在类名中体现出具体模式。

说明:将设计模式体现在名字中,有利于阅读者快速理解架构设计思想。

正例: public class OrderFactory; public class LoginProxy; public class ResourceObserver;12312、【推荐】接口类中的方法和属性不要加任何修饰符号( public 也不要加),保持代码的简洁性,并加上有效的javadoc 注释。

尽量不要在接口里定义变量,如果一定要定义变量,肯定是与接口方法相关,并且是整个应用的基础常量。

正例:接口方法签名: void f(); 接口基础常量表示:String COMPANY = 'alibaba';反例:接口方法定义: public abstract void f();说明: JDK8 中接口允许有默认实现,那么这个default 方法,是对所有实现类都有价值的默认实现。

12345 13、接口和实现类的命名有两套规则:1)【强制】对于 Service 和 DAO 类,基于 SOA 的理念,暴露出来的服务一定是接口,内部的实现类用 Impl 的后缀与接口区别。

正例: CacheServiceImpl 实现CacheService 接口。

2)【推荐】如果是形容能力的接口名称,取对应的形容词做接口名(通常是–able 的形式)。

正例:AbstractTranslator 实现 Translatable。

12314、【参考】枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开。

说明:枚举其实就是特殊的常量类,且构造方法被默认强制是私有。

正例:枚举名字: DealStatusEnum;成员名称:SUCCESS / UNKOWN_REASON。

12315、【参考】各层命名规约:A) Service/DAO 层方法命名规约1)获取单个对象的方法用 get 做前缀。

2)获取多个对象的方法用 list 做前缀。

3)获取统计值的方法用 count 做前缀。

4)插入的方法用 save(推荐)或 insert 做前缀。

5)删除的方法用 remove(推荐)或 delete 做前缀。

6)修改的方法用 update 做前缀。

B) 领域模型命名规约1)数据对象: xxxDO, xxx 即为数据表名。

2)数据传输对象: xxxDTO, xxx 为业务领域相关的名称。

3)展示对象: xxxVO, xxx 一般为网页名称。

4) POJO 是 DO/DTO/BO/VO 的统称,禁止命名成xxxPOJO。

223常量定义1、【强制】不允许出现任何魔法值(即未经定义的常量)直接出现在代码中。

反例: String key='Id#taobao_' tradeId; (key, value);12、【强制】 long 或者 Long 初始赋值时,必须使用大写的L,不能是小写的 l,小写容易跟数字 1混淆,造成误解。

说明: Long a = 2l; 写的是数字的 21,还是 Long 型的 213、【推荐】不要使用一个常量类维护所有常量,应该按常量功能进行归类,分开维护。

如:缓存相关的常量放在类:CacheConsts 下;系统配置相关的常量放在类:ConfigConsts 下。

说明:大而全的常量类,非得 ctrl f 才定位到修改的常量,不利于理解,也不利于维护。

14、【推荐】常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。

1)跨应用共享常量:放置在二方库中,通常是中的const 目录下。

2)应用内共享常量:放置在一方库的 modules 中的const 目录下。

反例:易懂变量也要统一定义成应用内共享常量,两位攻城师在两个类中分别定义了表示“是”的变量:类 A 中: public static final String YES = 'yes';类 B 中: public static final String YES = 'y';,预期是 true,但实际返回为 false,导致产生线上问题。

3)子工程内部共享常量:即在当前子工程的 const 目录下。

4)包内共享常量:即在当前包下单独的 const 目录下。

5)类内共享常量:直接在类内部 private static final 定义。

5、【推荐】如果变量值仅在一个范围内变化用 Enum 类。

如果还带有名称之外的延伸属性,必须使用 Enum 类,下面正例中的数字就是延伸信息,表示星期几。

正例: public Enum{ MONDAY(1), TUESDAY(2), WEDNESDAY(3), THURSDAY(4), FRIDAY(5),SATURDAY(6), SUNDAY(7);}1格式规范1、【强制】大括号的使用约定。

如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则:1)左大括号前不换行。

2)左大括号后换行。

3)右大括号前换行。

4)右大括号后还有 else 等代码则不换行;表示终止右大括号后必须换行。

12345672、【强制】左括号和后一个字符之间不出现空格;同样,右括号和前一个字符之间也不出现空格。

详见第 5 条下方正例提示。

3、【强制】 if/for/while/switch/do 等保留字与左右括号之间都必须加空格。

4、【强制】任何运算符左右必须加一个空格。

说明:运算符包括赋值运算符=、逻辑运算符&&、加减乘除符号、三目运行符等。

15、【强制】缩进采用 4 个空格,禁止使用 tab 字符。

说明:如果使用 tab 缩进,必须设置 1 个 tab 为 4 个空格。

IDEA 设置 tab 为 4 个空格时,请勿勾选 Use tab character;而在 eclipse 中,必须勾选 insert spaces for tabs。

1正例:(涉及 1-5 点)public static void main(String args[]) {ppend('xin')....append('huang')....append('huang')....append('huang');反例:StringBuffer sb = new StringBuffer();ppend('xin')...append('huang');., argsX);8197、【强制】方法参数在定义和传入时,多个参数逗号后边必须加空格。

正例:下例中实参的'a',后边必须要有一个空格。

method('a', 'b', 'c');1238、【强制】 IDE 的 text file encoding 设置为 UTF-8; IDE 中文件的换行符使用 Unix 格式,不要使用 windows 格式。

9、【推荐】没有必要增加若干空格来使某一行的字符与上一行的相应字符对齐。

正例:int a = 3;long b = 4L;float c = 5F;StringBuffer sb = new StringBuffer();说明:增加 sb 这个变量,如果需要对齐,则给 a、 b、c 都要增加几个空格,在变量比较多的情况下,是一种累赘的事情。

相关文档
最新文档