`
WoKo_Jb
  • 浏览: 491 次
  • 来自: 郑州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java编码规范

阅读更多

 

 

一、 Java命名的一般性指导 

 

 

1. 

类名首字母应该大写。

属性(成员变量)、方法、对象变量以及所有标识符(如形式参数、实际参数、局部变量)的首字母应小写,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。

 

例如:

 

类名:ThisIsAClassName

属性或方法名:thisIsMethodOrFieldName 

对象变量:thisIsAClassVariable 

 

 

2. 

Java包(Package)属于一种特殊情况,它们全都是小写字母,即便中间的单词亦是如此。对于全局包,将你的Internet 域名反转并接上包名。

 

例如:cn.edu.usst.dingyuewei.package 

另外,package 行要在import 行之前,import 中标准的包名要在本地的包名之前,而且按照字母顺序排列。如果import 行中包含了同一个包中的不同子目录,则应该用 * 来处理。

 

例如 

 

package hotlava.net.stats; 

import java.io.*; 
import java.util.Observable; 
import hotlava.util.Application; 
 

 

这里 java.io.* 是用来代替 

InputStream and OutputStream 的。 

 

 

3. 

接口(Interface):采用完整的英文描述符说明接口封装,所有单词的第一个字母大写。习惯上,名字后面加上后缀 able, ible 或者 er。

 

例如:Contactable,Prompter。 

 

4. 

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

例如:okButton,customerList,fileMenu。 

 

5. 

类中常用方法的命名: 

 

○ 类的获取方法(一般具有返回值)一般要求被方法名使用被访问字段名,前面加上前缀 get,

如getFirstName(), getLastName()。 

○ 类的布尔型的判断方法一般要求方法名使用单词 is 做前缀,

如 isPersistent(), isString()。或者使用具有逻辑意义的单词,例如 equal或 equals 

○  类的设置方法(一般返回类型为 void):被访问字段名的前面加上前缀 set

setFirstName(),setLastName(),setWarpSpeed()。 

○  类的普通方法一般采用完整的英文描述说明成员方法功能,第一个单词尽可能采用一个生动的动词,第一个字母小写.

如 openFile(), addAccount()。 

○  构造方法应该用递增的方式写(比如:参数多的写在后面)。

例如:

public CounterSet(){}

public CounterSet(int size){ this.size = size;} 

 

 

○ .toString 方法:一般情况下,每一个类都应该定义 

toString 方法,其格式为: 

public String toString() {…} 

 

○  一般应考虑置入一个 

main() 方法,其中包含用于测试那个类的代码,如果包含了main() 方法, 那么它应该写在类的底部。 

 

 

6. 

静态常量字段(static final)一般全部采用大写字母,单词之间用下划线分隔(也有特例,

 

如Java类库中关于颜色的常数没有严格地全部使用大写字母)。

如MIN_BALANCE, DEFAULT_DATE。 

 

 

7. 

循环计数变量通常采用字母 i,j,k 或者 counter。而数组应该总是用下面的方式来命名:

objectType[]或 byte[] buffer。

 

 

 


二、 Java注释约定 

 

 

1. 

类的整体注释:遵循 JavaDoc的规范,在每一个源文件的开头注明该CLASS的作用, 作简要说明, 并写上源文件的作者, 编写日期。如果是修改别人编写的源文件,要在修改信息上注明修改者和修改日期。

 

例如: 

 

/** 

* @(#):CLASSNAME.java 
* @description: Description of this java 
* @author: PROGRAMMER'S NAME YYYY/MM/DD 
* @version: Version No. 
* @modify: 
* @Copyright: 版权由拥有 
*/ 
 

 

 

2. 

类中方法的注释:遵循 JavaDoc的规范,在每个方法的前部用块注释的方法描述此方法的作用,以及传入,传出参数的类型和作用,以及需要捕获的错误。

例如: 

 

/** 

* 方法的描述 
* 
* 
*@param 参数的描述 
*@return 返回类型的描述 
*@exception 出错信息的描述 
*/ 
 

3. 

行注释:使用 //…的注释方法来注释需要表明的内容。并且把注释的内容放在需要注释的代码的前面一行或同一行。 

 

4. 

块注释:使用/**和*/注释的方法来注释需要表明的内容。并且把注释的内容放在需要注释的代码的前面

 

5. 

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

 

 

 

三、 Javabean开发规范 

 

 

1. 

数据库连接规范 

l 在开发过程中,数据库连接通过调用已写好的一个数据库连接类 

JDBC来实现。 

l 数据库的连接一般放在数据库的构造方法中建立。 

l 在每个方法中,若对数据库操作结束,则必须显式地调用 

JDBC类里的方法 

close(), 

 

 

将数据库连接关闭。 

 

 

2. 

代码书写规范(一般 

Java程序代码可参考)

有一个良好的代码书写习惯。代码编写规范的基本约定如下: 

l 每一行的代码不宜过长,一般以页面宽度的 

80%至 

90%为宜。对于连接在一起,代

码较长的程序,可考虑采用分行显示的方式,第二行一般在第一行的基础上缩进两

个空格(或一个 

TAB,这一点在书写复杂的 

sql语句时,尤其要注意!)。

例如: 

 

 

public Vector getAgentInfo(String agent_name, String agent_type) 

 

throws Exception,SQLException 

l. 

javabean中各个方法之间,一般以两行间隔,而不允许连在一起。

例如: 

 

 

public void getAgent() 

{} 

//第一行; 

//第二行; 

public int getNum() 

 

 

{} 

 

l 大括号{}使用的规定:{}在使用时,如果不是在一行代码中,则应该做到:左括号 

“{”与右括号“ 

}”上下对齐,这一点在有多个嵌套的情况下显得尤为重要。大括

号里的首行代码,必须在下一行,并且缩进两个空格(或一个 

TAB)。

 

例如: 

 

 

public void processRequest(HttpServletRequest clientRequest){ 

String itemName, itemNum; 

int newItemNum; 

if(submit==null){ 

 

clear(); 

 

}else{ 

update(); 

try{ 

 

 

newItemNum = (Integer.valueOf(itemNum)).intValue(); 

}catch(Num berFormatException e){ 

itemNumber = 1; 

 

 

 

l 定义变量时,同一类型的变量可以一起定义,但数量一般限定在两到三个,三个以

上则必须分开定义。变量定义与流程语句之间必须向间隔一行。 

 

 

3. 

例外控制规范

在编写 

javabean时,例外(exception)的控制一般有两种方式: 

l 一种是在方法里捕获 

l 另一种是通过 

try{}catch(Exception e){}的方式来捕获。

 

两种方法无论采用哪种均可以,但他们在使用场合还是有一些区别的。

第一种捕获方法,主要适用于对具体是哪种例外、并且在哪里会发生不太清楚的情况。

第二种捕获方法,适用于比较了解例外的发生情况。 

 

 

 

 

4. 

方法返回类型规范

这里所指的方法返回类型,专指返回记录集的情况。一般在 

javabean里返回的记录集

都是以 

ResultSet的类型返回的,考虑到 

ResultSet在用完以后需要关闭,如果向页面返回 

ResultSet类型,则须在页面里关闭 

rs,这样会带来安全方面的隐患。为了解决这个问题,

我们提供了一个方法,将 

ResultSet类型转换为一个 

Vector类型。程序员在 

javabean里只需

调用相应的方法,即可实现转换。

 

 

 

四、 Java编码其它约定 

 

1. 

JSP文件命名采用完整的英文描述说明 JSP所完成的功能,尽可能包括一个生动的动词,第一个字母小写,

 

如:viewMessage.jsp、editUser.jsp或者 forumChooser.jsp等。 

 

2. 

Servlet类命名一般对应于所服务的对象加后缀 Service来命名,

如:UserService, TradeService等。 

 

3. 

使用 StringBuffer 对象:在处理 String 的时候要尽量使用 StringBuffer 类, StringBuffer 类是构成 

String 类的基础。String 类将 StringBuffer 类封装了起来,(以花费更多时间为代价)为开发人员提供了一个安全的接口。当我们在构造字符串的时候,我们应该用StringBuffer 来实现大部分的工作,当工作完成后将 StringBuffer 对象再转换为需要的 String 对象。比如:如果有一个字符串必须不断地在其后添加许多字符来完成构造,那么我们应该使用 StringBuffer 对象和它的 append() 方法。如果我们用 String 对象代替 StringBuffer 对象的话,会花费许多不必要的创建和释放对象的 CPU 时间。 

 

4. 

避免太多的使用 synchronized 关键字:避免不必要的使用关键字 synchronized,应该在必要的时候再使用它,这是一个避免死锁的好方法。必须使用时,也尽量控制范围,最好在块级控制。 

 

5. 

避免使用 java.util.Vector 类:因为 Vector是 is synchronized.",所以使用 java.util.Vector类在性能上会有所减低。 

 

6. 

尽量使用接口而不是一个具体的类:例如:给定一个 SQL语句,返回一个对象的列表,实现中用 java.util.ArrayList实现,于是定义方法为: 

 

public java.util.ArrayList getObjectItems(String sql);
 

上面的方法存在一个问题,当 getObjectItems内改用 Vector或 LinkedList实现,外部类必须做相应更改。一个更好的方法是定义返回值为 java.util.AbstractList更合适:

 

 

public java.util.AbstractList getObjectItems(String sql);
 

这样即使更改实现,外部类也不必做相应更改。 

 

 

7. 

避免使用索引来调用数据库中间层组件返回的结果集:

例如: 

 

for(int i=1;i<=dt.getRowCount();i++){ 
String field1 = dt.getField(i,0).toString(); 

… 


} 
 

 

而应用字段名来存取结果集: 

 

 

for(int i=1;i<=dt.getRowCount();i++){ 
String field1 = dt.getField(i,"field1").toString(); 

… 


} 
 

 

 

这样在数据库设计更改或查询的 SQL语句发生变化时,不会影响到程序的执行。另外尽量不要使用*通配符,例如 

Select * from tableName,应该具体写明字段名。 

 

 

 

分享到:
评论

相关推荐

    阿里巴巴java编码规范

    阿里巴巴java编码规范 ,Java 并发编程培训(阿里巴巴) 《阿里巴巴Java开发手册》,首次公开阿里官方Java代码规范标准。这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大...

    华为JAVA编码规范.pdf

    华为JAVA编码规范.pdf 华为JAVA编码规范.pdf是华为公司编写的JAVA编程语言编码规范,旨在提供一个统一的编程风格和代码组织方式,以提高代码的可读性、维护性和可重用性。该规范涵盖了编程语言的基本结构、命名规则...

    Java编码规范.docx

    Java 编码规范 Java 编码规范是指在 Java 语言中编写代码时需要遵守的一些约定和规则,以确保代码的可读性、可维护性和可扩展性。本文将对 Java 编码规范的主要内容进行详细讲解。 命名风格是 Java 编码规范的重要...

    腾讯java编码规范

    腾讯 Java 编码规范 腾讯 Java 编码规范是腾讯集团管理标准的一部分,旨在确保公司项目代码的易维护性和编码安全性。该规范涵盖了 Java 编码风格、文件组织、代码风格、注释、命名、声明、异常、习惯等方面。 一、...

    java编码规范考试题答案.doc

    "java编码规范考试题答案" 一、Java编码规范考试题答案 本文档涵盖了Java编码规范的各种方面,包括集合类、线程、对称密码算法、异常处理、命名规范、随机数生成、压缩文件解压、安全编程规范、操作系统登录用户名...

    JAVA编码规范试题

    JAVA编码规范是软件开发中不可或缺的一部分,它不仅有助于提高代码的可读性和可维护性,还能促进团队协作,减少潜在的编程错误。以下是从给定的文件信息中提炼出的关键知识点,涵盖了JAVA编码规范的基本原则、文件...

    百度java编码规范

    **百度Java编码规范** 在软件开发中,遵循一定的编码规范是非常重要的,它能提高代码的可读性,便于团队协作,降低维护成本。百度作为一家技术驱动的公司,也提出了其内部使用的Java编码规范,旨在确保代码的一致性...

    Java编码规范.doc

    Java编码规范是软件开发中非常重要的一个环节,它旨在提高代码质量、可读性、可维护性和团队协作效率。这份文档,"Java编码规范.doc",由东软集团有限公司的商用软件事业部编写,包含了国内大型Java项目和国际知名...

    阿里Java的编码规范

    Java、编码规范、Java编码规范、阿里巴巴、阿里巴巴Java编码规范、阿里巴巴Java编码规范、阿里巴巴Java编码规范、阿里巴巴Java编码规范、阿里巴巴Java编码规范、阿里巴巴Java编码规范、阿里巴巴Java编码规范、阿里...

    Java编码规范(详细)

    Java编码规范是编程实践中至关重要的指导原则,它旨在提高代码的可读性、可维护性和团队协作效率。本文档详细阐述了Java编程时应遵循的一些关键规则和最佳实践。 1. **简介** - **目的**:制定这些规范的主要目的...

    Java 编码规范 chm

    1. **命名约定**:Java编码规范对变量、方法、类和包的命名有明确的要求。例如,类名应采用驼峰式命名法,每个单词首字母大写;方法名和变量名则使用小驼峰式,首个单词全小写;常量全大写,单词间用下划线分隔。包...

    java编码规范.zip

    本压缩包“java编码规范.zip”提供了华为版的编码规范和一个详细的Java代码规范版本,旨在帮助开发者遵循一致的规则,编写出易于阅读、维护的高质量代码。 首先,我们来看华为版的Java编码规范。华为作为全球知名的...

    JAVA编码规范全集

    ### JAVA编码规范全集 #### 1. 介绍 ##### 1.1 为什么要有编码规范 编码规范在软件开发过程中扮演着至关重要的角色。它不仅有助于提高代码的可读性和可维护性,还能增强团队协作效率。以下是几个关键理由: - **...

    公司java编码规范

    【公司Java编码规范】是确保团队协作和代码质量的重要文档,它定义了开发人员在编写Java代码时应遵循的一系列规则和最佳实践。这些规范旨在提高代码可读性、可维护性和可扩展性,减少错误,并使代码更容易理解和调试...

    Neusoft公司Java编码规范.rar

    Java编码规范(Java Coding Standard) oiNSFT-BS-OT0105 V3.0 2005-5-11 东软集团有限公司 商用软件事业部 版权所有 中国 沈阳浑南高新技术产业开发区 东软软件园

    Java编码规范终极版

    ### Java编码规范终极版知识点详解 #### 一、引言:为何制定编码规范? 编码规范在软件开发过程中扮演着至关重要的角色。一个清晰且统一的编码标准能够显著提升代码的质量,进而提高软件的整体性能和可维护性。在...

Global site tag (gtag.js) - Google Analytics