当前位置:文档之家› JAVA编码规范(3)

JAVA编码规范(3)

JAVA编码规范(3)
JAVA编码规范(3)

1.命名规范

命名要使用具有实际意义的英文单词,或者单词的缩写,不要使用单个的字母来命名一个变量,一个好的命名,几乎不用看文档就能知道该方法或者变量的意义,如同Java API,它的命名还是很值得借鉴的。

命名的一般规范:

1.尽量使用完整的英文描述符(除非特别必要,尽量不要使用汉语拼音缩

写形式)。

2.采用适用于相关领域的术语(如url之类的术语,但术语必须是大家认

可的)。

3.采用大小写混合使名字可读。

4.尽量少用缩写,但如果用了,要明智地使用,且在整个工程中统一,一

些常用的缩写可以参考Java API 如message的缩写可以为msg。

5.避免使用长的名字(小于15 个字母是个好主意)。

6.避免使用类似的名字,或者仅仅是大小写不同的名字。

7.避免使用下划线(除静态常量等)。

1.1. package 的命名

package 的名字应该都是由小写字母单词组成,名字的前两级为com.highsoft,三级名称为模块名。例如:包名com.highsoft.demo.action表示demo模块下处理类包名。

1.2. Class 的命名

Class 的名字必须由大写字母开头而其他字母都小写的单词组成,对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。

例如:public class ThisAClassName{}

1.3. 变量的命名

对于变量的命名,要尽量达到能通过变量名知道这个变量表达的含义,变量采用小写字母开头,对于由多个单词组成的变量名,所有单词都应紧靠在一起,而且大写中间单词的首字母。对于常量(static final类型)采用如下方式命名:字母全部大写并使用下划线分隔单词(如:DB_CONFIG)。

1.4. 参数的命名

参数的名字必须和变量的命名规范一致。

1.5. 数组的命名

数组命名和变量命名类似,主要是能体现出这是一组数据。

1.6. 方法的参数

使用有意义的参数命名。同时请参照“变量的命名”条目。

对于javabean中简单的set和get方法,可以使用和要赋值的字段一样的名字。

setSize(int size){

this.size = size;

}

1.7. 方法的命名

方法的命名遵循变量的命名,方法的名字必须用一个小写字母开头。后面的单词用大写字母开头。

1.8. 特定类的命名

对于Servlet类,在对象后加后缀Servlet来命名,如:UserServlet 。

对于Applet类,在对象后加后缀Applet来命名,如:GraphApplet 。

对于JUnit和测试类,在对象后加后缀Test来命名,如UserTest。

其他的特定类命名以后将不断补充进本标准中。

2.注释规范

2.1. 使用代码注释的目的和关键

1.文字说明代码的作用(即为什么要用编写该代码,而不是如何编写);

2.明确指出该代码的编写思路和逻辑方法;

3.使阅读者注意到代码中的重要转折点;

4.使阅读者不必在他们的头脑中仿真运行代码的执行方法。

5.何时书写注释:1)请在每个if语句的前面加上注释;2)在每个switch

语句的前面加上注释。与if语句一样,switch语句用于评估对程序执行

产生影响的表达式。3)在每个循环的前面加上注释。每个循环都有它

的作用,许多情况下这个作用不清楚直观。

2.2. Java的注释

单行注释:// 注释一行

多行注释:/* ...... */ 注释若干行

文档注释:/** ...... */ 注释若干行,并写入javadoc 文档,对共有变量、方法,使用该种注释。

说明:提供给客户程序员使用的接口、公用类要严格按照文档注释进行注释,并生成doc文档,做到客户程序员通过阅读doc来使用共有类,而不是阅读源代码来使用一个公共接口或者类。

●边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的

一致性。

●注释要简单明了。

●要区分两种注释的区别,一种是文档注释,是给客户程序员使用的,他

们不会阅读你的源代码,因此要尽可能的提供更多的信息,让他们使用

起来方便;另一种是非文档注释,是提供给代码的维护人看的,是为了

给代码的维护人员看的,他们是要看到你的源代码的,因此非文档注释

要简单明了。

下面是一个公用类的注释:

package java.blah;

import java.blah.blahdy.BlahBlah;

/**

* 对类的用途的描述.

*

* @version 1.82 1999-03-18 (版本信息,变更关键字),加上版本作者

1.82 1999-09-23

* @author Firstname Lastname(作者信息)

*/

public class MyClass extends SomeClass {

/** 对公有成员变量的注释(单行的格式),建议采用单行的格式,节省版面*/

public int classVar1;

/**

* 对共有成员变量的注释(多行的格式)

* more than one line long

*/

private Object classVar2;

/**

* ...对该方法用途的描述

* @param userName对参数userName的描述

* @param password 对参数password的描述

* @exception 对抛出异常的说明

* @return String 对返回值的描述

*/

public String classMethod(String userName,String password) {

// 对代码片断的注释(如,以下用于密码验证)

if( flag == true){

//对代码逻辑块进行注释(如:如果密码验证通过)

}else{

//对代码逻辑块进行注释(如:如果密码验证未通过)

}

}

}

2.3. JSP中注释

<%-- comment --%>JSP注释,也称为“隐藏注释”。JSP引擎将忽略它。标记内的所有JSP脚本元素、指令和动作都将不起作用。这种注释不会出现载JSP 编译后的JSP 页面中,建议使用。

<!-- comment -->HTML注释,也称为“输出的注释”,直接出现在结果HTML文档中。标记内的所有JSP脚本元素、指令和动作正常执行。

2.4. 使用javadoc注释

在自定义类中必须使用javadoc注释以保证客户程序员通过使用java自动编译生成的doc文档就能够使用你的类。

这里的注释请通过eclipse开发工具辅助生成,对参数、返回值等要做必要的说明。

2.5. 变更注释

为了方便的让代码维护者看到文件的变更信息及历史,对于重要的修改请使用变更注释。在javadoc的@version条目下请标明版本信息、修改日期、修改关键字和简单的修改说明信息。在修改代码的开始和结束处使用修改标识和关键字进行标示。注释时尽量不要删除变更前代码。同时保证其他人员可以使用变更关键字来查找变更位置(后起的关键字必须保证和前面的关键字不重复并尽量保证

非类似)。

举例如下:

//变更修改注释:变更关键字:modify。张三(2006-04-26)。因为错误进行了变更修改。

/*首先注释修改前的代码*/

开始进行变更修改

//变更修改完毕。变更关键字:modify

3.代码编写格式

3.1. 缩进4个空格

缩进应该是每行4个空格。尽量不要在源文件中保存Tab字符。在使用不同的源代码管理工具时Tab字符将因为用户设置的不同而扩展为不同的宽度。

3.2. 页宽为80字符

页宽应该设置为80字符。源代码超过这个宽度可能导致无法完整显示,但这一设置也可以灵活调整。在任何情况下,超长的语句应该在一个逗号或者一个操作符后折行。一条语句折行后,应该比原来的语句再缩进4个字符。

3.3. if-else语句块

if-else语句块的格式如下,else紧接着if的结束大括号。

if(……){

……

}else{

……

}

即使if条件语句语句后面如果只有一行代码,最好也放在大括号中

如:

if( flag == true){

flag == false;

}

String username =new String();

……

而非以下形式:

if( flag == true)

flag == false;

String username =new String();

……

3.4. try-catch语句块

try-catch语句块应遵循如下格式:

try{

……

}catch(Exception ex){

……

}finally{

……

}

3.5. 方法与方法之间或者方法体内的逻辑块之间以空行分隔

方法与方法之间,或者一个方法体中的逻辑块之间用空行来分割,增强代码的可读性。

3.6. public方法和public变量要优先排列前面

变量的排列顺序:首先是类的公共变量,随后是保护变量,再后是包一级别的变量(没有访问修饰符,access modifier),最后是私有变量

方法的排列顺序:同变量的排列顺序。

这样使得首先看到得是类得公有变量和公有成员函数。

3.7. 用三目运算符代替简单的if-else块

在判断关系简单并且稳定不变的地方使用可以增强代码可读性和提高性能。

3.8. 运算符的排版格式

一元符与操作数之间不要空格,如i++,i--,i与++之间不要空格。

二元操作符与操作数之间要空格分开,如a = b + c;加号两端都加空格。

3.9. 使用圆括号来避免运算符优先级问题

即使运算符的优先级对你而言可能很清楚,但对其他人未必如此。你不能假设别的程序员和你一样清楚运算符的优先级。

应该在表达式中明确的制定优先级,避免难以理解的代码出现。

3.10. import使用规定

引入jdk及j2ee标准类时可以使用*,如import java.io.*;

引入自定义类时,请一个类一条import语句,以增强代码可读性。如import dfjh.basic.db.dbaccess;

4.Exception异常处理

通常的思想是只对错误采用异常处理:逻辑和编程错误,设置错误,被破坏的数据,资源耗尽等。

通常的法则是系统在正常状态下以及无重载和硬件失效状态下,不应产生任何异常。异常处理时可以采用适当的日志机制来报告异常,包括异常发生的时刻。不要使用异常实现来控制程序流程结构。

4.1. 分别捕获子类的异常而非父类Exception

比较合理的做法是分别捕获各个子类异常之后,分别处理不同的异常,不要一个方法内就一个try{}catch(){}块。

4.2. 使用Exception来返回异常,而非返回值

尽量使用Exception来反映函数运行中的异常,而不是使用返回值来反映,除非有充分理由这样做。越是底层的类越应该使用Exception来反映函数运行中的异常。

4.3. 禁止使用空的catch(){}代码

绝对不允许代码中出现catch(){}而什么也没做。因为这样做还不如直接把异常抛出,让使用该方法的人来处理。同时只要你catch了一个异常,JVM就认为你已经处理了该异常,其实你什么也没有做,这样就使很多的异常可能隐藏起来了。

4.4. Exception信息输出

在每一个catch到一个异常的时候,在调试状态下请使用ex.printStackTrace()来输出错误信息;在运行状态下请使用ex.getMessege()来输出错误信息。通常情况下应该加上比较容易读懂的中文信息的输出。

5.性能优化(推荐标准)

5.1. 避免不必要的对象构造

有的时候,构造了一个变量由于某种原因,您可能没有使用它,每构造一个对象可能会花销一定得CPU时间,正确的做法是先申明,到需要使用的时候才构造它的一个对象。一般不要在申明时构造一个对象(尤其是针对类变量)。

5.2. 不要在循环中构造和释放对象

不要象一下代码一样构造对象:

for(int i = 0;i < 50 ;i ++){

Double doubleObj = new Double;

doubleObj = ……;

}

而应该使用如下方法:

Double doubleObj = new Double;

for(int i = 0;i < 50 ;i ++){

doubleObj = ……;

}

5.3. 使用StringBuffer 对象

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

例如:常用的是定义SQL语句时,你可能会用到过+=来扩充SQL语句的内容,由于String对象是长度不能改变的,其实使用+=是每次构造一个新的String 对象。该字符串的内容是原来字符串内容与新加入的内容之和,再把新字符串赋值给原来的字符串变量。

比较合理的做法是使用StringBuffer类来代替String。

StringBuffer stringBuffer = new StringBuffer("初始内容");

StringBuffer.append("+加上新的内容");

StringBuffer.toString();

StringBuffer的append还重载了许多实用方法,如append(int intValue)等等,支持基本数据类型的,省去了你再将基本数据类型转换为对应的String ,再使用+=连接字符串的麻烦。

说明:在字符串长度大于100时,必须使用本标准。

5.4. 避免太多的使用synchronized 关键字

避免不必要的使用关键字synchronized,应该在必要的时候再使用它。

5.5. 不是必要的时候不要使用Vector、Hashtable等同步化

的数据结构

这些数据结构是同步化的,会对性能造成一定的影响,因此,不是必要的时候不要使用,可以使用他们的替代品ArrayList和HashMap代替。

6.设计类和方法的原则

6.1. 创建具有很强内聚力的类

方法的重要性往往比类的重要性更容易理解,方法是指执行一个统一函数的一段代码。类常被错误的视为是一个仅仅用于存放方法的容器。有些开发人员甚至把这种思路作了进一步的发挥,将他们的所有方法放入单个类之中。

之所以不能正确的认识类的功能,原因之一是类的实现实际上并不影响程序的执行。当一个工程被编译时,如果所有方法都放在单个类中或者放在几十个类中,这没有任何关系。虽然类的数量对代码的执行并无太大的影响,但是当创建便于调试和维护的代码时,类的数量有时会带来很大的影响。

类应该用来将相关的方法组织在一起。

当类包含一组紧密关联的方法时,该类可以说具有强大的内聚力。当类包含许多互不相关的方法时,该类便具有较弱的内聚力。应该努力创建内聚力比较强

的类。

大多数工程都包含许多并不十分适合与其他方法组合在一起的方法。在这种情况下,可以为这些不合群的方法创建一个综合性收容类。

创建类时,应知道“模块化”这个术语的含义是什么。类的基本目的是创建相当独立的程序单元。

6.2. 创建松散连接和高度专用的方法

6.2.1.使所有方法都执行专门的任务

每个方法都应执行一项特定的任务,它应出色的完成这项任务。应避免创建执行许多不同任务的方法。

创建专用方法有许多好处。首先调试将变得更加容易。

6.2.2.尽量使方法成为自成一体的独立方法

当一个方法依赖于其他方法的调用时,称为与其他方法紧密连接的方法。紧密连接的方法会使调试和修改变得比较困难,因为它牵涉到更多的因素。松散连接的方法优于紧密连接的方法,但你不可能使每个方法都成为独立的方法。

若要使方法具备较强的独立性,方法之一是尽量减少类变量。

创建方法时,设法将每个方法视为一个黑箱,其他例程不应要求了解该方法的内部工作情况,该方法也不应要求了解它外面的工程情况。这就是为什么你的方法应依靠参数而不应依靠全局变量的原因。

创建专用方法时,请考虑下列指导原则:

1.将复杂进程放入专用方法。如果应用程序使用复杂的数学公式,请考虑

将每个公式放入它自己的方法中。这样使用这些公式的其他方法就不包

含用于该公式的实际代码。这样也可以更容易发现与公式相关的问题。

2.将数据输入/输出(I/O)放入专用方法。

3.将专用方法中可能要修改的代码隔离。如果你知道某个进程经常变更,

请将这个多变的代码放入专用方法,以便以后可以更容易的进行修改,

并减少无意中给其他进程带来问题的可能性。

4.将业务规则封装在专用方法中。业务规则常属于要修改的代码类别,应

与应用程序的其余部分隔开。其他方法不应知道业务规则,只有要调用

的方法才使用这些规则。

6.2.3.设计类和方法时,要达到下列目的:

1.创建更加容易调试和维护的方法;

2.创建具有强大内聚力的类;

3.创建高度专用的方法;

4.创建松散连接的方法;

5.尽量使方法具有独立性;

6.提高方法的扇入性;

7.降低方法的扇出性。

Java编程规范试题

姓名: ____________ 工号:_______________ 部门:____________ 成绩: 一. 判断题(共15题,每题2分,直接在括号内打“/或“X”) 1、任何时候都不要使接口可以序列化。x 2、相对独立的程序块之间、变量说明之后必须加空行。V 3、当程序需要释放对象的时候,应该手工调用fin alize 方法以释放对象。x 4、公司的规范要求注释率是20%以上,并且必须有助于对程序的阅读理解。x 5、为了程序更加简洁,我们应该尽量使用下面的方式来赋值: a = b = 1 。x 6、每个类都需要定义构建器。x 7、类名、方法名、属性名的命名,都应该使用意义完整的英文描述。V 8、main() 方法的定义是public static void main(String args[]) 。x 9、常量名应该使用全大写,英文单词之间用下划线或者-分隔开。并且,常量应该使用final static 修饰。x 10、公有方法参数名可以和属性名相同,但局部变量不能和属性名相同。V 11、一两行代码就能完成的功能没有必要编写方法实现。x 12、对于模块间接口方法的参数的合法性检查,调用者和被调用者都应该对参数进行合法性检查。 x 13、运行期异常使用RuntimeException的子类来表示,必须在方法声明上加throws子句。x非运行 期异常是从Exception继承而来的,不用在可能抛出异常的方法声明上加throws子句。x 14、使用Objectstream 的方法后,调用release(),释放对象。X 15、减小单个方法的复杂度,使用的if, while, for, switch 语句要在10个以内。V 二、单项选择题(共23题,每题2分) (c ) 1、排版时,代码缩进应该采用的方式是: (A)Tab缩进 (B)2个空格缩进

Java编程规范

Java编程规范本文引用阿里Java开发手册。GitHub阅读地址: 目录 编程规约 - 命名规约 - 常量定义 - 格式规范 - OOP规约 - 集合处理 - 并发处理 - 控制语句 - 注释规约 - 其他 - 异常处理 - 建表规约 - 索引规约 - SQL规约

- ORM规约 编程规约 命名规约 1、【强制】所有编程相关命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束 反例: _name / __name / $Object / name_ / name$ / Object$1 2、【强制】所有编程相关的命名严禁使用拼音与英语混合的方式,更不允许直接使用中的方式。 说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即纯拼音的命名方式也要避免采用。 反例: 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

/ TAPromotion123 4、【强制】方法名、参数名、成员变量、局部变量都统一只用 lowerCamelCase 风格,必须遵从驼峰形式。 正例: localValue / getHttpMessage() / inputUserId1 5、【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。 正例: MAX_STOCK_COUNT 反例: MAX_COUNT123 6、【强制】抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾。 7、【强制】中括号是数组类型的一部分,数组定义如下:String[] args ; 反例:请勿使用 String args[] 的方式来定义1 8、【强制】 POJO 类中的任何布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。 反例:定义为基本数据类型 boolean isSuccess;的属性,它的方法也是 isSuccess(), RPC框架在反向解析的时候,“以为”对应的属性名称是 success,导致属性获取不到,进而抛出异常。1 9、【强制】包名统一使用小写,点分隔符之间有且仅有一

华为Java语言编码规范标准

Java语言编码规范 Prepared by 拟制Date 日期 yyyy-mm-dd Reviewed by 评审人Date 日期 yyyy-mm-dd Approved by 批准Date 日期 yyyy-mm-dd

Revision Record 修订记录

Table of Contents 目录 1. 范围 (4) 2. 规范性引用文件 (4) 3. 术语和定义 (4) 4. 排版规范 (5) 4.1. 规则 (5) 4.2. 建议 (7) 5. 注释规范 (9) 5.1. 规则 (9) 5.2. 建议 (15) 6. 命名规范 (17) 6.1. 规则 (17) 6.2. 建议 (18) 7. 编码规范 (20) 7.1. 规则 (20) 7.2. 建议 (24) 8. JTEST规范 (26) 8.1. 规则 (26) 8.2. 建议 (27)

1.范围 本规范规定了使用Java语言编程时排版、注释、命名、编码和JTEST的规则和建议。 本规范适用于使用Java语言编程的产品和项目。 2.规范性引用文件 下列文件中的条款通过本规范的引用而成为本规范的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本规范,然而,鼓励根据本规范达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本规范。 3.术语和定义 规则:编程时强制必须遵守的原则。 建议:编程时必须加以考虑的原则。 格式:对此规范格式的说明。 说明:对此规范或建议进行必要的解释。 示例:对此规范或建议从正、反两个方面给出例子。

java编码规范考试题答案

一、单选题 1. 如下关于集合类的描述错误的是B A. 含有集合意义的属性命名,尽量包含其复数的意义 B. 集合中的数据不需要释放,垃圾回收器会自动回收 C. 集合必须指定模板类型 D. 使用集合类时要设置初始化容量 2. 关于线程以下说法错误的有B A. 新起一个线程,都要使用Thread.setName(“…”)设置线程名 B. 在JDK1.5或更新的版本中,若字符串拼接发生在单线程环境,使用StringBuffer C. 对多线程访问的变量、方法,必须加锁保护,避免出现多线程并发访问引起的问题 D. 线程使用时,要在代码框架中使用线程池,避免创建不可复用的线程;禁止在循环中创建新线程,否则会引起JVM资源耗尽 3. 下面哪个是推荐使用的对称密码算法B A. DES B. AES C. SHA D. RSA

4. 以下说法正确的有C A. 程序中的一些状态多直接用数字表示,如函数执行成功return 1 B. 对于表示函数执行错误,多用约定的错误码来标识 C. 用有意义的静态变量或者枚举来代替数字型的程序状态,如函数执行成功return SUCCESS D. 程序中的魔鬼数字并不可怕,需要所有开发人员努力理解这些数字的含义 5. 下列错误使用异常的做法是D A. 在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构来确定,并且异常和错误码不应该混合使用,推荐使用异常 B. 一个方法不应抛出太多类型的异常。throws/exception子句标明的异常最好不要超过三个 C. 异常捕获尽量不要直接catch (Exception ex),应该把异常细分处理 D. 程序内抛出的异常本身就可说明异常的类型、抛出条件,可不填写详细的描述信息。捕获异常后用exception.toString()取到详细信息后保存 6. 关于命名规范,以下说法错误的有D A. 属性名使用意义完整的英文描述,第一个单词的字母使用小写,剩余单词首字母大写其余字母小写的大小写混合法。属性名不能与方法名相同 B. 方法名使用类意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法 C. 方法中,存取属性的方法采用setter 和getter方法,动作方法采用动词和动宾结构

Java编程要求规范精彩试题

JAVA编程规范--试题 姓名:工号:部门:成绩: 一. 判断题(共15题,每题2分,直接在括号内打“√”或“×”) 1、任何时候都不要使接口可以序列化。x 2、相对独立的程序块之间、变量说明之后必须加空行。√ 3、当程序需要释放对象的时候,应该手工调用finalize方法以释放对象。x 4、公司的规范要求注释率是20%以上,并且必须有助于对程序的阅读理解。x 5、为了程序更加简洁,我们应该尽量使用下面的方式来赋值:a = b = 1 。x 6、每个类都需要定义构建器。x 7、类名、方法名、属性名的命名,都应该使用意义完整的英文描述。√ 8、main() 方法的定义是public static void main(String args[])。x 9、常量名应该使用全大写,英文单词之间用下划线或者-分隔开。并且,常量应该使用 final static修饰。x 10、公有方法参数名可以和属性名相同,但局部变量不能和属性名相同。√ 11、一两行代码就能完成的功能没有必要编写方法实现。x 12、对于模块间接口方法的参数的合法性检查,调用者和被调用者都应该对参数进行合 法性检查。x 13、运行期异常使用RuntimeException的子类来表示,必须在方法声明上加throws子句。 x非运行期异常是从Exception继承而来的,不用在可能抛出异常的方法声明上加throws 子句。x 14、使用ObjectStream 的方法后,调用release() ,释放对象。X 15、减小单个方法的复杂度,使用的 if, while, for, switch 语句要在10个以内。√ 二、单项选择题(共23题,每题2分) ( c )1、排版时,代码缩进应该采用的方式是: (A)Tab缩进 (B)2个空格缩进 (C)4个空格缩进 (D)8个空格缩进

(完整版)阿里巴巴编码规范(Java)题库

多选 1.如何处理单元测试产生的数据,下列哪些说法是正确的?ABC A .测试数据入库时加特殊前缀标识。 B .测试数据使用独立的测试库。 C .自动回滚单元测试产生的脏数据。 D .无须区别,统一在业务代码中进行判断和识别。 多选 2.关于并发处理,下列哪些说法符合《阿里巴巴Java开发手册》:ABC A .线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。 B .同步处理时,能锁部分代码区块的情况下不要锁整个方法;高并发时,同步调用应该考虑到性能损耗。 C .创建线程或线程池时,推荐给线程指定一个有意义的名称,方便出错时回溯。 D .推荐使用Executors.newFixedThreadPool(int x)生成指定大小的线程池。(线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式) 多选 3.下列哪些说法符合《阿里巴巴Java开发手册》:ACD A .对于“明确停止使用的代码和配置”,如方法、变量、类、配置文件、动态配置属性等要坚决从程序中清理出去,避免造成过多垃圾。 B .永久弃用的代码段注释掉即可,即不用加任何注释。 C .对于暂时被注释掉,后续可能恢复使用的代码片断,在注释代码上方,统一规定使用三个斜杠(///)来说明注释掉代码的理由。 D .不要在视图模板中加入任何复杂的逻辑。 多选 4.关于分页查询,下列哪些说法符合《阿里巴巴Java开发手册》:ABC A .分页查询,当统计的count为0时,应该直接返回,不要再执行分页查询语句。 B .iBATIS自带的queryForList(String statementName,int start,int size)分页接口有性能隐患,不允许使用。 C .定义明确的sql查询语句,通过传入参数start和size来实现分页逻辑。 D .可使用存储过程写分页逻辑,提高效率。

Java编程规范

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、自己抛出的异常必须要填写详细的描述信息。 说明:便于问题定位。 示例: throw new IOException("Writing data error! Data: "+ data.toString()); 4(删除)、在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构来确定,并且异常和错误码不应该混合使用,推荐使用异常。 说明: 一个系统或者模块应该统一规划异常类型和返回码的含义。 但是不能用异常来做一般流程处理的方式,不要过多地使用异常,异常的处理效率比条件分支低,而且异常的跳转流程难以预测。

华为JAVA编码规范

1.程序块采用缩进风格,空格为4个. 说明: 对于开发工具自动生成的代码可以不一致 2.分界符(如大括号{和})应各自占一行并且在同一列,同时与引用它们的语句左 对齐,在方法的开始,类和接口的定义,以及if,for,do,while,switch,case语句都要采用上述缩进 说明: for(…) { …//your code } 3.较长(>80字符)的语句,表达式和参数要分多行,长表达式要在低优先级操作符 划分新行,操作符放在行首,新行要适当缩进,整齐,语句可读. 说明: if(filename != null && new File(logPath+filename).length() < logConfig.getFileSize()) { …//your code } 4.一行只写一条语句 说明: LogFilename wow = null; LogFilename that = null; 5.if,for,do,switch,while,case,default各占一行,它们的执行语句无论多少都要加{} 说明: if(writeToFile) { writeFileThread.interrupt(); } 6.相对独立的程序块,变量,说明要加空行 说明: if(log.getLevel() < log.getRecord()) { return ; } //空行

LogWrite writer; 7.对齐只用空格键,不用TAB键 说明: 以免使用不同的编辑器阅读程序时,因TAB键所设置的空格数不同而造成程序布局不整齐,JBuildr,UltraEdit等编辑环境,支持行首TAB替换成空格,应将该选项打开 8.两个以上的关键字,变量,常量进行对等操作时,操作符之前,之后或前后要加空 格,进行非对等操作时,如果是关系密切的立即操作符,后面不加空格(如.操作符) 说明: 采用这种松散方式编写代码目的是让程序更加清晰,由于空格所产生的清晰性是相对的,所以在已经很清晰的语句中没有必要留空格,如果语句已足够清晰,则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为java中括号已经是很清晰的标志了.在长句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部中不加空格,给操作符留空格时不要连续留两个以上空格 9.类属性和方法不要交叉放置,不同存取范围的属性和方法也不要交叉放置 说明: 类定义:{ 类公有属性定义; 类保护属性定义; 类私有属性定义; 类公有方法定义; 类保护方法定义; 类私有方法定义; } 10.源程序的有效注释量必须在30%以上 11.包的注释写入一个名为package.html的html格式的说明文件放入当前路径 12.包的注释内容:本包作用,详细描述本包内容,产品模块名称及版本,公司版本 说明: 一句话描述 详细描述 产品模块
公司版本信息

(完整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编码规范(命名规则).

1. Java 命名约定 除了以下几个特例之外,命名时应始终采用完整的英文描述符。此外,一般应采用小写字母,但类名、接口名以及任何非初始单词的第一个字母要大写。 1.1一般概念 n 尽量使用完整的英文描述符 n 采用适用于相关领域的术语 n 采用大小写混合使名字可读 n 尽量少用缩写,但如果用了,要明智地使用,且在整个工程中统一 n 避免使用长的名字(小于 15个字母是个好主意 n 避免使用类似的名字,或者仅仅是大小写不同的名字 n 避免使用下划线(除静态常量等 1.2示范 包(Package采用完整的英文描述符,应该都是由小写字母组成。对于全局包,将你的 Internet 域名反转并接上包名。 j ava.aw t,com.ambysof t.www.persistence 类(Class采用完整的英文描述符,所有单词的第一个字母大写。 Customer, SavingsAccount 接口(Interface采用完整的英文描述符说明接口封装,所有单词的第一个字母大写。习惯上,名字后面加上后缀 able, ible 或者 er,但这不是必需的。Contactable,Prompter 组件/部件(Component使用完整的英文描述来说明组件的用途,末端应接上组件类型。 okButton, customerList,f ileMenu 异常(Exception通常采用字母 e 表示异常。 e

类变量字段采用完整的英文描述,第一个字母小写,任何中间单词的首字母大写。 firstName, lastName 实参/参数同字段/属性的命名规则 public void setFirstName(String firstName{ this.firstName = f irstName;} 局部变量同字段/属性的命名规则 获取成员函数被访问字段名的前面加上前缀 get。 getFirstName(, getLastName( 布尔型的获取成员函数所有的布尔型获取函数必须用单词 is做前缀。isPersistent(, isString( 设置成员函数被访问字段名的前面加上前缀 set。 setFirstName(, setLastName(,setWarpSpeed( 普通成员函数采用完整的英文描述说明成员函数功能,第一个单词尽可能采用一个生动的动词,第一个字母小写。 openFile(, add Account( 静态常量字段(static final全部采用大写字母,单词之间用下划线分隔。 MIN_B ALANCE, DEF AULT_DATE 循环计数器通常采用字母 i,j,k 或者 counter 都可以接受。 i, j, k, counter 数组数组应该总是用下面的方式来命名:obj ectType[]。 byte[] buff er; 2. Java 注释约定 一个很好的可遵循的有关注释的经验法则是:问问你自己,你如果从未见过这段代码,要在合理的时间内有效地明白这段代码,你需要哪些信息。 2.1. 一般概念 n 注释应该增加代码的清晰度

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 拼音

java编码规范

JAVA编码规范

目录 JAVA编码规范 (1) 1 概述 (8) 1.1范围 (8) 1.2说明 (8) 2 文件体系结构 (10) 2.1文件体系规则 (10) 规则2.1.1 JSP文件目录结构 (10) 建议2.1.2 Java文件目录结构 (10) 2.2源文件结构规则 (11) 规则2.2.3 类变量的声明顺序是public,protected,package,private (11) 规则2.2.4 变量、常量的注释应放在其上方相邻位置 (12) 规则2.2.5 用递增的方式写构造器(比如:参数多的写在后面) (12) 规则2.2.6 类变量的存取方法:get和set方法 (12) 规则2.2.7 如果定义main() 方法,必须将main方法写在类的底部 (12) 3 文件命名规则 (13) 规则3.1S TRUCTS配置文件命名............................................... 错误!未定义书签。 规则3.2JSP文件命名 (13) 规则3.3J AVA文件命名 (13) 4 排版规则 (14)

4.1语句排版规则 (14) 规则4.2.1简单语句每行至多包含一条语句 (14) 规则4.2.2 复合语句被括其中的语句缩进一个层次 (14) 规则4.2.3 左大括号"{"应位于复合语句起始行的行尾,前面需加一个空格符;右大括号"}"应另起一行并与复合语句首行对齐。 (14) 规则4.2.4 必须用"{"和"}"将if内的语句括起来。(即使只有一条语句的情况下) (14) 规则4.2.7 在多层嵌套的for语句中,应在for上一行增加逻辑注释 (15) 建议4.2.14 “=”等比较符前后加一个空格 (15) 5 注释规则 (16) 5.1类注释规则 (16) 规则5.1.1 使用JavaDoc,列出功能、版本信息、日期、作者和版权声明 (16) 规则5.1.2 如果对文件进行了修改,必须说明修改目的、修改日期、修改人,并变更版本信息 (16) 5.2类方法注释规则................................................................. 错误!未定义书签。 规则5.2.1 用中文写出每个参数和返回值的含义 (16) 规则5.2.2 当修改其他组员创建的类时,增加author标签错误!未定义书签。 5.3单行注释规则..................................................................... 错误!未定义书签。 规则5.4.1单行注释位于所描述内容之前 ...................... 错误!未定义书签。 规则5.4.2 单行注释之前留一行空行 ............................. 错误!未定义书签。

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最全的编码规范

JAVA最全的编码规范 (1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如: ThisIsAClassName thisIsMethodOrFieldName 若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母。这样便可标志出它们属于编译期的常数。 Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。对于域名扩展名称,如com,org,net或者edu 等,全部都应小写(这也是Java 1.1和Java 1.2的区别之一)。 (2) 为了常规用途而创建一个类时,请采取"经典形式",并包含对下述元素的定义: equals() hashCode() toString() clone()(implement Cloneable) implement Serializable (3) 对于自己创建的每一个类,都考虑置入一个main(),其中包含了用于测试那个类的代码。为使用一个项目中的类,我们没必要删除测试代码。若进行了任何形式的改动,可方便地返回测试。这些代码也可作为如何使用类的一个示例使用。 (4) 应将方法设计成简要的、功能性单元,用它描述和实现一个不连续的类接口部分。理想情况下,方法应简明扼要。若长度很大,可考虑通过某种方式将其分割成较短的几个方法。这样做也便于类内代码的重复使用(有些时候,方法必须非常大,但它们仍应只做同样的一件事情)。 (5) 设计一个类时,请设身处地为客户程序员考虑一下(类的使用方法应该是非常明确的)。然后,再设身处地为管理代码的人考虑一下(预计有可能进行哪些形式的修改,想想用什么方法可把它们变得更简单)。 (6) 使类尽可能短小精悍,而且只解决一个特定的问题。下面是对类设计的一些建议: 一个复杂的开关语句:考虑采用"多形"机制

java编程规范第三版

竭诚为您提供优质文档/双击可除java编程规范第三版 篇一:java编程的标准之jaVa编程规范 java编程的标准之jaVa编程规范简介 本文提供一整套编写高效可靠的java代码的标准、约定和指南。它们以安全可靠的软件工程原则为基础,使代码易于理解、维护和增强。而且,通过遵循这些程序设计标准,你作为一个java软件开发者的生产效率会有显著提高。经验证明,若从一开始就花时间编写高质量的代码,则在软件开发阶段,对代码的修改要容易很多。最后,遵循一套通用的程序设计标准将带来更大的一致性,使软件开发团队的效率明显提高。 最根本的原则: 运用常识。当找不到任何规则或指导方针,当规则明显不能适用,当所有的方法都失效的时侯:运用常识并核实这些基本原则。这条规则比其它所有规则都重要。常识是必不可少的。 程序设计标准 java的程序设计标准很重要,原因在于它将提高开发团

队各成员的代码的一致性。一致性的提高会使代码更易理解,这意味着它更易开发和维护。从而降低了应用程序的总开发成本。 你必须牢记的是:你的java代码在你已离开并开始另 一个项目之后,会保留相当长的一端时间。因此开发过程中一个很重要的目标就是要确保在开发成员或开发团队之间 的工作可以顺利交接,不必花很大的力气便能理解已编写的代码,以便继续维护和改进以前的工作。如果代码难以理解,很有可能被废弃和重写。 命名约定 我们将在整个标准中讨论命名约定,所以让我们先讨论几个基本点: 1.使用可以准确说明变量/字段/类的完整的英文描述符。例如,采用类 似firstname,grandtotal或corporatecustomer这样的名字。虽 然象x1,y1或fn这样的名字很简短,输入起来容易,但是我们 难以知道它们代表什么、结果是什么含义,因而使代码难以理解、 维护和改进。 2.采用该领域的术语。如果用户称他们的“客户”

JAVA编码(代码)规范(WORD版)

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)

JAVA编码规范

JA V A 编码规范 1.1目的和要求 (1) 1.2检查列表 (1) 1.3JA VA文件的版权和版本信息(简称“HEAD”) (2) 1.4JA VA文件的注释规范 (2) 1.5JA VA元素的命名规则 (3) 1.6JA VA的排版规范和元素的先后顺序 (4) 1.7JSP文件的版权和版本信息 (6) 1.8JSP编码规范 (6) 1.9X ML配置文件的版权和版本信息 (7) 1.10X ML配置文件的注释规范 (7) 1.1 目的和要求 为什么要有编码规范 编码规范对于程序员而言尤为重要,有以下几个原因: - 一个软件的生命周期中,80%的花费在于维护 - 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护 - 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码 - 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品 为了执行规范,每个软件开发人员必须一致遵守编码规范。 这是一个强制执行的标准,而不是一个指南。当我们的标准不适应的时候,我们可以讨论、修改标准。但是已经制定的标准一定要得到执行。 1.2 检查列表

1.3 JAVA 文件的版权和版本信息(简称“头”) 版权和版本信息必须在 java 文件的开头,其他不需要出现在 javadoc 的信息也可以包含在这里。 所有的头文件都可以自动生成,详见<关于eclipse 创建新类自动添加注释的说明.rar> 如: /* * Author: wufengt * Created Date:2008-12-1* | Author | Change Description * 20051212| wuf | 优化编码的格式 * 20051215 | wuf | 再次优化编码的格式 */ 1.4 JAVA 文件的注释规范 1.Class 类的注释 类的注释,一般是用来解释类的,主要包括这个类的功能描述,注意事项和一些重要功能的使用实例。 /** * 注释内容 */ public class CounterSet extends Observable implements Cloneable{ … } 2.成员变量的注释 public 的成员变量必须生成文档(JavaDoc )。proceted 、private 和 package 定义的成员变量可以使用一般注解也可以使用JavaDoc 进行注释,所有的成员变量都必须有注释。 // 操作状态标志:0.新增,1.修改,2.查看 protected long modifyStatus = 0; /** * 每一页的条目数

java编码要求规范文档

Java代码规 1.标识符命名规 1.1简洁 简洁是指,在统一和达意的前提下,用尽量少的标识符。如果不能达意,宁愿不要简洁。比如:theOrderNameOfTheTargetSupplierWhichIsTransfered 太长,transferedTargetSupplierOrderName则较好,但是transTgtSplOrdNm就不好了。省略元音的缩写方式不要使用,我们的英语往往还没有好到看得懂奇怪的缩写。 1.2英文vs 拼音 尽量使用通俗易懂的英文单词,如果不会可以向队友求助,实在不行则使用汉语拼音,避免拼音与英文混用。比如表示归档,用archive比较好, 用pigeonhole则不好,用guiDang 尚可接受。 1.3包名 使用小写字母如 .xxx.settlment,不要 .xxx.Settlement 单词间不要用字符隔开,比如 .xxx.settlment.jsfutil,而不要com.xxx.settlement.jsf_util 1.4类名 1.4.1首字母大写

类名要首字母大写,比如SupplierService, PaymentOrderAction;不要supplierService, paymentOrderAction. 1.5方法名 首字母小写,如addOrder() 不要AddOrder() 动词在前,如addOrder(),不要orderAdd() 名称不要太长 动词前缀往往表达特定的含义,如下表:

find方法在业务层尽量表达业务含义,比如findUnsettledOrders(),查询未结算订单,而不要findOrdersByStatus()。数据访问层,find,update等方法可以表达要执行的sql,比如findByStatusAndSupplierIdOrderByName(Status.PAID, 345)

JAVA编码标准规范

JA V A编码规范 项目组1.序言3

2.代码命名一般原则3 3.代码注释使用的一般原则和类型4 4.方法的命名和注释规范5 4.1.成员方法的命名5 4.2.构造方法的命名6 4.3.成员方法的头部注释文档规范6 4.4.成员方法的内部注释文档规范6 4.5.成员方法的访问权限控制7 4.6.GET X XXX方法和SET X XXX方法的使用7 5.属性变量的命名和注释规范8 5.1.属性变量的命名规范8 5.2.属性变量的访问权限控制8 5.3.属性变量的注释8 6.组件变量的命名规范8 7.常量命名规范9 8.局部变量的命名和注释规范9 9.成员方法参数命名和注释规范9 10.类的命名和注释规范10 11.接口的命名和注释规范10 12.包的命名和文档说明规范10 13.编写测试代码11 14.文件的命名11

1.序言 本规范的目的在于编写出可靠的,一致的,便于理解的JA V A源代码,并且写出的代码容易被其他人阅读,所有的JA V A代码保持良好的一致性,容易在以后的阶段中进行维护和升级。同时,也是为了通过一定时间的实践,增加软件产品的投入产出量,以提高工作效率。 2.代码命名一般原则 在JA V A代码中,所有的代码命名的总原则是: 1.用全英文单词命名的方式,准确地描述变量、属性、类等。如:使用firstName,grandTotal等命名就比x1,y1,fn等更容易让人理解其含义,尽管它们的长 度要大一些。 2.采用一些更加准确的术语来命名。例如,如果我们的用户称他们的clients为customers,那么我们就应该采用customer来命名,而不是采用client来命名。这是 一些细微的地方,但也希望能注意。 3.采用大小写混合的方式来命名,以便命名有很好的可读性。在JA V A代码中,将采用如下原则:类或接口命名中每个单词的首字母均大写,而单词的剩余部分均小写。 其它像变量、成员方法、属性等除第一个单词全部小写以外,其它单词的首字母均

相关主题
文本预览
相关文档 最新文档