JAVA程序编码规范

JAVA程序编码规范
JAVA程序编码规范

JAVA程序编码规范

1变量的命名规则

1.1常量(包含静态的)

一个或多个英文单词的组合,所有字母均大写,单词之间以“_”分隔,如:

public static final String PLATFORM_NAME="CSSCIS"

final double PI=3.14d;

一般情况下常量的public等修饰符不可少。

1.2类变量(静态变量)及实例变量

一个或多个英文单词的组合,第一个单词的首字母小写,其他单词首字母均大写,其余所有字母均小写。如:

private DesktopItem desktopItem;

private static String providerUrl="http://localhost/web/sm/login.ext";

private Logger loger=Logging.getLogger("TestLogger");

一般情况下类变量(静态变量)及实例变量的public等修饰符不可少。

1.3局部变量

一个或多个英文单词的组合,一般采用Hungaryn naming法(匈牙利定义法),如下:

以下是基本数据类型的前缀列表

前缀含义实例

ch表示char类型char chTemp;

前缀含义实例

i表示int类型int iNumber;

byte表示Byte类型Byte byteGet;

s表示short类型Short sNumber;

l表示long类型long lNumber;

f表示float类型Float fCount;

d表示double类型double dPrise;

str表示String类型String strSend;

b表示boolean类型Boolean bFlag;

其他数据类型的前缀列表

前缀含义实例

col表示Collection类型

Collection colUser=new ArrayList();

Collection colUser=new Vector(); al表示ArrayList类型ArrayList alUser=new ArrayList(); date表示Date类型Date dateStart=new Date();

sb表示StringBuffer类型StringBuffer sbName=new StringBuffer(1024)

除上述情况以外的数据类型,都以obj作为前缀,后面跟一个能说明变量功能或意义单词作为变量,如:

User objUser;

1.4参数

一个或多个英文单词的组合,第一个单词的首字母小写,其他单词首字母均大写,其余所有字母均小写。如:

public void setUser(User user)

public void setUserId(String userId)

建议方法的参数不要超过5个,超过时可以将多个参数合并为一个对象进行传递。

1.5其它

?常用数据类型的变量,采用固定的命名,包括以下几种:

Connection conn;

ResultSet rs;

PreparedStatement pstmt;

Statement stmt;

?数组变量命名与普通变量命名规则一致,一般在具体的英文单词复数形式如:

int projectIds[];

public String userNames[];

?每个变量的声明单独占一行。不能一个类型同时声明两个变量。如:int i,j;这样的写法是不允许的。

?不要在代码中出现不使用的变量,如果以后会用到或有其他用途要写上注释说明。2方法的命名规则

?方法命名的基本原则:容易看懂

?一般的方法名采用两个单词动宾结构形式的名称,两个单词之间不要带其它符号,

第二个单词的首字母大写,其它的都小写。

如:readBudget(int budgetId)、deleteBudget(int budgetId)

?只有一个动词形式的方法名不推荐使用。

?不容易看明白的方法名或有歧义的方法名可采用多单词的形式,每两个单词之间不要带其它符号,从第二个单词开始,每个单词的首字母大写,其它的都小写。

如:readBudgetByProjectId(int projectId)、readBudgetByProjectIdAndYear(int

projectId,int year)

?方法命名不得采用缩写形式。

3类及接口的命名规则

3.1一般类名

一个或多个英文单词的组合,所有单词的首字母大写,其余所有字母均小写,如:public class User{

}

3.2实体对象

一般采用工具自动生成,名字为数据库表的逻辑名,如:

表SM_USER的实体对象名为SmUser。

3.3数据访问接口及类(Dao)

一般采用实体对象名+Dao来命名接口,实体对象名+DaoImpl来命名类

3.4服务接口及类(Service)

一般采用实体对象名+Service来命名接口,实体对象名+ServiceImpl来命名类

3.5控制器类(Controller)

一般采用实体对象名+Controller来命名

4作用域

4.1类的作用域

?类的作用域保持最小范围。供包外其它类引用的类才添加public作用域修饰符。

4.2方法的作用域

?只供对象或类内部调用的方法必须使用private作用域修饰符。

?包外不会调用的方法严禁使用public作用域修饰符。

4.3属性的作用域

?静态常量(类常量)属性可以使用各种作用域修饰符。

?对象属性变量严禁使用public作用域修饰符。

?实体对象属性变量必须使用private作用域修饰符。

4.4局部变量的作用域

?方法内的变量定义应该遵循最小作用域规则。

如:

//iSize只在下面的for循环中使用

Int iSize=alItems.size();

for(int i=0;i

……………………………….

}

建议写成:

for(int i=0,iSize=alItems.size();i

……………………………….

}

属性是对象的特征,不要把非对象的属性定义为实例变量。

5注释的编写规则

所有类及接口文件要写文件头注释(包含版权等),版权中的年度代码书写的开始年度(Copyright(C)2008),如下:

/******************************************************************************

*Copyright(C)2008ShenZhen Csscis Information Technology Co.,Ltd

*All Rights Reserved.

*****************************************************************************/

所有类及接口头要写类注释(包含作者、创建日期等),@author、@history中要书写中文名,如果注释的内容比较长则需要加“
”。如下:

/**

*系统管理用户维护实现类.实现新增项目,删除用户等方法,

*提供对表现层Controller使用的接口.

*@author张三

*@since JDK1.5

*/

类中必要的方法(包括私有方法)要写方法头注释。其中返回值(@return)需要说明含义,包括整型,布尔型,集合等,如对于整形:@return返回1表示成功,0表失败;对于集合类型要写明集合内元素的类型:@return UserVO的集合。如果注释的内容比较长则需要加“
”,如下:/**

*修改用户信息

*@param user用户信息

*@throws NoPermissionException没有修改权限

*@return修改成功返回1没有修改返回0

*/

public int updateUser(User user)throws NoPermissionException

对代码块的注释,注释语句放在代码块之上,用”//”进行注释,如果注释语句本身超过一行,则用”/**/”进行注释。

对某一行代码的注释,注释语句放在代码行的后面,用”//”进行注释。

建议代码块之间空一行。如下:

public void insertUser(User user){

//新增用户

service.save(user);

<空一行>

/*

增加到默认用户组

*/

....

}

6格式

6.1缩进

设定为4个字符。

6.2每代码行的长度

代码行的长度不超过100个字符。

6.3大括号

大括号中的“{”与条件在同一行,“}”单独一行,即使大括号中只有一条执行语句也要使用大括号,如:

if(a==b){

return0;

}

6.4空行

类文件头注释、package语句、import语句、类头注释、类的属性、方法等之间都空一行。

类的属性与属性之间、方法与方法之间都空一行。

如下:

/******************************************************************************

*Copyright(C)2008ShenZhen Csscis Information Technology Co.,Ltd

*All Rights Reserved.

*****************************************************************************/

<空一行>

package com.csscis.platform.core.util;

<空一行>

import https://www.360docs.net/doc/a410694250.html,mon.*;

<空一行>

/**

*类说明.

*@author张三

*@since JDK1.5

*@history2005-03-15张三新建

*/

public class ProjectException extends BaseException{ private String message;

<空一行>

/**

......

*/

public ProjectException(String message){

super(message);

this.message=message;

}

<空一行>

/**

......

*/

public String getMessage(){

return message;

}

}

6.5空格

“=”、“+”、“==”等二元操作符两边分别空一格。如:

int i=1;

“,”的后面空一格。如:

implements Runnable,cloneable

6.6import部分

import引用要具体到类名,不能用“*”。

import语句书写的顺序为:Java标准类,第三方软件类库,本公司自己的组件类、本工程其他包中的类。这四部分之间分别空一行。所有需要用到的其他包的类都要在import中应用,不要将类似“new java.util.ArrayList()”的语句写在代码中。

6.7数字

long、double、float型变量后的字母“L”、“D”、“F”均大写。16进制的前缀“0X”要大写“X”,数字部分“A”

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代码中,将采用如下原则:类或接口命名中每个单词的首字母均大写,而单词的剩余部分均小写。 其它像变量、成员方法、属性等除第一个单词全部小写以外,其它单词的首字母均

相关主题
相关文档
最新文档