Java开发编码规范

简介: Java开发编码规范   Java 命名约定。 采用适用于相关领域的术语 采用大小写混合使名字可读 尽量少用缩写,但如果用了,要明智地使用,且在整个工程中统一 避免使用长的名字(一般小于15个字母) 避免使用类似的名字,或者仅仅是大小写不同的名字 避免使用下划线(除静态常量等)包(Package) 采用完整的英文描述符,应该都是由小写字母组成。

Java开发编码规范

 

Java 命名约定
采用适用于相关领域的术语
采用大小写混合使名字可读
尽量少用缩写,但如果用了,要明智地使用,且在整个工程中统一
避免使用长的名字(一般小于15个字母)
避免使用类似的名字,或者仅仅是大小写不同的名字
避免使用下划线(除静态常量等)


包(Package)

采用完整的英文描述符,应该都是由小写字母组成。对于全局包,将你的 Internet 域名反转并接上包名。 例如:java.awt,com.ambysoft.www.persistence


类(Class

采用完整的英文描述符,所有单词的第一个字母大写(一些专有的缩写词,比如:AWTException等则除外)。Class的名字建议使用名词或者名词短语。 例如:Customer, SavingsAccount,LayoutManager等

接口(Interface)

接口的名字取决于接口的主要功能和用途。如果接口是使对象具有某种特定的功能,则接口的名字建议使用可以描述这种功能的形容词(加上-able或者-ible后缀)

例如:Searchable,Sortable,NetworkAccessible等

如果接口不是使对象具有某种特定的功能则建议使用名词或者名词短语(同类的命名规则)。


组件/部件(Component)

使用完整的英文描述来说明组件的用途,末端应接上组件类型。 okButton,customerList,fileMenu


异常(Exception)

通常采用字母 e 表示异常。


类变量 字段

采用完整的英文描述,第一个字母小写,任何中间单词的首字母大写。 firstName, lastName


静态常量字段(static final)

全部采用大写字母,单词之间用下划线分隔。 MIN_BALANCE, DEFAULT_DATE

方法

方法命名采用大小写混合的形式。以小写字母开头,名字中其他单词的首字母以大写字母开头,所有其它的单词都为小写字母,不要使用下划线分隔单词。方法的命名应该能描绘出方法的作用和功能,方法的名字建议使用祈使动词或者动词短语。

例如:showStatus(),drawCircle(),addLayoutComponent()


成员函数

被访问字段名的前面加上前缀 get。 getFirstName(), getLastName()
布尔型的获取成员函数 所有的布尔型获取函数必须用单词 is 做前缀。 isPersistent(), isString() ;设置成员函数 被访问字段名的前面加上前缀 set。 setFirstName(),setLastName(),setWarpSpeed()


空白的使用相关

空行规范

空行的使用有益于将代码按照逻辑分段,提高代码的可读性。在下列情况下建议使用一个空行:

l   在版权声明块、包声明块、引用声明块之后;

l   在类的声明之间;

l   在方法的声明之间;

l   在类中声明最后一个属性之后,声明第一个方法之前。

空格规范

下列情况建议使用单个空格(不是Tab):

在一个关键字和它所修饰的块之间。可用于如下的关键字:catch,for,if,switch,synchronized,while。下列关键字的后面不要跟随空格:super ,this 。

 

在一个参数列表中逗号之后。

空格不应该置于方法名与其左括号之间

左括号和后一个字符之间不应该出现空格

右括号和前一个字符之间也不应该出现空格

例如:

public setMethod(int i, String j)

缩进规范

行的缩进要求是四个空格。由于在使用不同的源代码管理工具时Tab字符将因为用户设置的不同而扩展为不同的宽度,所以请不要使用Tab键。建议修改各管理工具的设置将Tab字符扩展成4个空格。

 

循环计数器

通常采用字母 i,j,k 或者 counter 都可以接受。 i, j, k, counter

1.   Java 注释约定
一个很好的可遵循的有关注释的经验法则是:问问你自己,你如果从未见过这段代码,要在合理的时间内有效地明白这段代码,你需要哪些信息。

·一般概念

注释应该增加代码的清晰度
保持注释的简洁
在写代码之前写注释(建议)
对于复杂点的逻辑,注释出为什么做了一些事,而不仅仅是做了什么

· 示范

文档注释 在紧靠接口、类、成员函数和字段声明的前面注释它们。

单行 在成员函数内采用单行注释,来说明业务逻辑、代码段和暂时变量的声明。注释符"//"后必须紧跟一个空格,然后才是注释信息。

·注释哪些部分
类的目的、即类所完成的功能,注释出采用的不变量。
接口 设置接口的目的、它应如何被使用以及如何不被使用。
成员函数注释 对于设置与获取成员函数,在成员变量已有说明的情况下,可以不加注释;普通成员函数要求说明完成什么功能,参数含义是什么返回什么;
普通成员函数内部注释 控制结构,代码做了些什么以及为什么这样做,处理顺序等。
实参/参数 参数含义、及其它任何约束或前提条件
字段/属性 字段描述
局部变量 无特别意义的情况下不加注释

2.   Java 文件样式约定

所有的 Java(*.java) 文件都必须遵守如下的样式规则:
1) 版权信息
版权信息必须在 java 文件的开头,比如:
/** * Copyright ? 2000 Shanghai XXX Co. Ltd. * All right reserved. */
其他不需要出现在 javadoc 的信息也可以包含在这里。
2) Package/Imports
package 行要在 import 行之前,import 中标准的包名要在本地的包名之前,而且按照字母顺序排列。如果 import 行中包含了同一个包中的不同子目录,则应该用 * 来处理。(如果有特殊要求,可以不采用*来处理,有时候那样更加明确使用了那些类)
package hotlava.net.stats;import java.io.*;import java.util.Observable;importhotlava.util.Application;
这里 java.io.* 是用来代替InputStream andOutputStream 的。
3) Class
接下来的是类的注释,一般是用来解释类的。
接下来是类定义,包含了在不同的行的 extends 和 implements
public class CounterSet extends Observable implements Cloneable{……}
4) Class Fields
接下来是类的成员变量:
public 的成员变量必须生成文档(JavaDoc)。
proceted、private和 package 定义的成员变量如果名字含义明确的话,可以没有注释。(建议都加注释,以便更明确,一目了然)
5) 存取方法(类的设置与获取成员函数)
接下来是类变量的存取的方法。
6) 构造函数
接下来是构造函数,它应该用递增的方式写(比如:参数多的写在后面)。
public CounterSet(int size){
   this.size = size;
}
7) 类方法 (类的普通成员函数)
下面开始写类的方法:
8) toString 方法
一般情况下,每一个类都应该定义 toString 方法:
public String toString() { ……}
9) main 方法
普通类,考虑置入一个main()方法,其中包含用于测试那个类的代码,如果包含了main() 方法, 那么它应该写在类的底部。

3. Java编码其它约定

文档化
 必须用 javadoc 来为类生成文档。不仅因为它是标准,这也是被各种 java 编译器都认可的方法。
缩进
缩进应该是每行2个(或4个)空格。 尽量不要在源文件中保存Tab字符, 在使用不同的源代码管理工具时Tab字符将因为用户设置的不同而扩展为不同的宽度。
如果你使用 UltrEdit 作为你的 Java 源代码编辑器的话,你可以通过如下操作来禁止保存Tab字符, 方法是通过 UltrEdit中先设定 Tab 使用的长度室2个空格,然后用 Format|Tabs toSpaces 菜单将 Tab 转换为空格。
页宽 换行
页宽应该设置为80字符。 源代码一般不会超过这个宽度, 并导致无法完整显示, 但这一设置也可以灵活调整。 在任何情况下, 一条语句折行后, 应该比原来的语句再缩进2个字符。

可以依据如下一般规则断开:
在一个逗号后面断开
在一个操作符前面断开
宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开
新的一行应该与上一行同一级别表达式的开头处对齐
如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进8个空格。
{} 对
{} 中的语句应该单独作为一行。
例如, 下面的第1行是错误的, 第2行是正确的:
if (i>0) { i ++ }; // 错误, { 和 } 在同一行
// 下面写法正确, 单独作为一行
if (i>0) {
   i ++
};
括号
左括号和后一个字符之间不应该出现空格; 同样, 右括号和前一个字符之间也不应该出现空格。
下面的例子说明括号和空格的错误及正确使用:
CallProc( AParameter ); // 错误
CallProc(AParameter); // 正确
不要在语句中使用无意义的括号,括号只应该为达到某种目的而出现在源代码中。
JSP文件命名
采用完整的英文描述说明JSP所完成的功能,尽可能包括一个生动的动词,第一个字母小写,如:viewMessage.jsp、editUser.jsp或者forumChooser.jsp等。
Servlet类命名
一般对应于所服务的对象加后缀Service来命名,如:UserService,TradeService等。

5. 一些编程建议

使用 StringBuffer 对象

在处理 String 的时候要尽量使用 StringBuffer 类,StringBuffer 类是构成 String 类的基础。String 类将 StringBuffer 类封装了起来,(以花费更多时间为代价)为开发人员提供了一个安全的接口。当我们在构造字符串的时候,我们应该用 StringBuffer 来实现大部分的工作,当工作完成后将 StringBuffer 对象再转换为需要的 String 对象。比如:如果有一个字符串必须不断地在其后添加许多字符来完成构造,那么我们应该使用 StringBuffer 对象和它的 append() 方法。如果我们用 String 对象代替 StringBuffer 对象的话,会花费许多不必要的创建和释放对象的 CPU 时间。
避免太多的使用 synchronized 关键字
避免不必要的使用关键字 synchronized,应该在必要的时候再使用它,这是一个避免死锁的好方法。 必须使用时,也尽量控制范围,最好在块级控制。
避免使用 java.util.Vector 类
因为"Unlike the new collection implementations, Vectoris synchronized.",所以使用java.util.Vector类在性能上会有所减低。
尽量使用接口而不是一个具体的类。(即面向接口编程)

每行声明变量的数量(Number Per Line)  推荐一行一个声明,因为这样以利于写注释

语句相关规范

·简单语句

赋值和表达式规范每行只包含一条语句。

本地变量:如果本地变量声明后不再变动应当声明为final,使编译器生成更有效率的代码。

数组的声明:数组的[]应该紧跟类型名,而不是数组名。在“[”之前不能有空格。

return语句规范:return语句后面的返回值不可以用括号包起来,除非是后面是一个表达式。

 

 

 

相关文章
|
1月前
|
Java API Maven
如何使用Java开发抖音API接口?
在数字化时代,社交媒体平台如抖音成为生活的重要部分。本文详细介绍了如何用Java开发抖音API接口,从创建开发者账号、申请API权限、准备开发环境,到编写代码、测试运行及注意事项,全面覆盖了整个开发流程。
148 10
|
1月前
|
监控 Java API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
|
2天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
25天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
46 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
12天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
72 13
|
17天前
|
算法 Java API
如何使用Java开发获得淘宝商品描述API接口?
本文详细介绍如何使用Java开发调用淘宝商品描述API接口,涵盖从注册淘宝开放平台账号、阅读平台规则、创建应用并申请接口权限,到安装开发工具、配置开发环境、获取访问令牌,以及具体的Java代码实现和注意事项。通过遵循这些步骤,开发者可以高效地获取商品详情、描述及图片等信息,为项目和业务增添价值。
52 10
|
11天前
|
前端开发 Java 测试技术
java日常开发中如何写出优雅的好维护的代码
代码可读性太差,实际是给团队后续开发中埋坑,优化在平时,没有那个团队会说我专门给你一个月来优化之前的代码,所以在日常开发中就要多注意可读性问题,不要写出几天之后自己都看不懂的代码。
49 2
|
20天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
1月前
|
开发框架 Java 关系型数据库
Java哪个框架适合开发API接口?
在快速发展的软件开发领域,API接口连接了不同的系统和服务。Java作为成熟的编程语言,其生态系统中出现了许多API开发框架。Magic-API因其独特优势和强大功能,成为Java开发者优选的API开发框架。本文将从核心优势、实际应用价值及未来展望等方面,深入探讨Magic-API为何值得选择。
54 2
|
1月前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。