Java语言编码规范

Java语言编码规范
Java语言编码规范

Java语言编码规范(Java Code Conventions)

目录

1 介绍(Introduction) (4)

2 文件组织(File Organization) (4)

2.1 Java源文件(Java Source Files) (4)

2.1.1 开头注释(Beginning Comments) (4)

2.1.2 包和引入语句(Package and Import Statements) (5)

2.1.3 类和接口声明(Class and Interface Declarations) (5)

3 缩进排版(Indentation) (6)

3.1 行长度(Line Length) (6)

3.2 换行(Wrapping Lines) (6)

4 注释(Comments) (8)

4.1 实现注释的格式(Implementation Comment Formats) (9)

4.1.1 块注释(Block Comments) (9)

4.1.2 单行注释(Single-Line Comments) (9)

4.1.3 尾端注释(Trailing Comments) (9)

4.1.4 行末注释(End-Of-Line Comments) (10)

4.2 文档注释(Documentation Comments) (10)

5 声明(Declarations) (11)

5.1 每行声明变量的数量(Number Per Line) (11)

5.2 初始化(Initialization) (12)

5.3 布局(Placement) (12)

5.4 类和接口的声明(Class and Interface Declarations) (13)

6 语句(Statements) (14)

6.1 简单语句(Simple Statements) (14)

6.2 复合语句(Compound Statements) (14)

6.3 返回语句(return Statements) (14)

6.4 if-else语句(if-else Statements) (15)

6.5 for语句(for Statements) (15)

6.6 while语句(while Statements) (16)

6.7 do-while语句(do-while Statements) (16)

6.8 switch语句(switch Statements) (16)

6.9 try-catch语句(try-catch Statements) (17)

7 空白(White Space) (18)

7.1 空行(Blank Lines) (18)

7.2 空格(Blank Spaces) (18)

8 命名规范(Naming Conventions) (19)

8.1 包(Packages) (19)

8.2 类(Classes) (20)

8.3 接口(Interfaces) (20)

8.4方法(Methods) (20)

8.5变量(Variables) (20)

8.6实例变量(Instance Variables) (21)

8.7常量(Constants) (21)

9 编程惯例(Programming Practices) (21)

9.1 提供对实例以及类变量的访问控制(Providing Access to Instance and Class Variables) (21)

9.2 引用类变量和类方法(Referring to Class Variables and Methods) (22)

9.3 常量(Constants) (22)

9.4 变量赋值(Variable Assignments) (22)

9.5 其它惯例(Miscellaneous Practices) (23)

9.5.1 圆括号(Parentheses) (23)

9.5.2 返回值(Returning Values) (23)

9.5.3 条件运算符"?"前的表达式(Expressions before '?' in the Conditional Operator) 24

9.5.4 特殊注释(Special Comments) (24)

10代码范例(Code Examples) (24)

10.1 Java源文件范例(Java Source File Example) (24)

1 介绍(Introduction)

●一个软件的生命周期中,80%的花费在于维护。

●几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护。

●编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码。

●如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如

你已构建的其它任何产品。

为了执行规范,每个软件开发人员必须一致遵守编码规范。

2文件组织(File Organization)

一个文件由被空行分割而成的段落以及标识每个段落的可选注释共同组成。超过2000行的程序难以阅读,应该尽量避免。

2.1 Java源文件(Java Source Files)

每个Java源文件都包含一个单一的公共类或接口。若私有类和接口与一个公共类相关联,可以将它们和公共类放入同一个源文件。公共类必须是这个文件中的第一个类或接口。

Java源文件还遵循以下规则:

●开头注释(参见"开头注释")

●包和引入语句(参见"包和引入语句")

●类和接口声明(参见"类和接口声明")

2.1.1 开头注释(Beginning Comments)

所有的源文件都应该在开头有一个C语言风格的注释,其中列出类名、版本信息、日期和版权声明:

2.1.2 包和引入语句(Package and Import Statements)

在多数Java源文件中,第一个非注释行是包语句。在它之后可以跟引入语句。

例如:

2.1.3 类和接口声明(Class and Interface Declarations)

下面描述了类和接口声明的各个部分以及它们出现的先后次序:

1.类/接口文档注释(/**……*/),该注释中所需包含的信息,参见"文档注释"

2.类或接口的声明

3.类/接口实现的注释(/*……*/),如果有必要的话,该注释应包含任何有关整个类或接口

的信息,而这些信息又不适合作为类/接口文档注释。

4.类的(静态)变量,首先是类的公共(public)变量,随后是保护(protected)变量,再后是包

一级别的变量(没有访问修饰符,access modifier),最后是私有(private)变量。

5.实例变量,首先是公共级别的,随后是保护级别的,再后是包一级别的(没有访问修饰符),

最后是私有级别的。

6.构造器

7.方法。这些方法应该按功能,而非作用域或访问权限,分组。例如,一个私有的类方法

可以置于两个公有的实例方法之间。其目的是为了更便于阅读和理解代码。

3缩进排版(Indentation)

4个空格常被作为缩进排版的一个单位。缩进的确切解释并未详细指定(空格vs. 制表符)。一个制表符等于4个空格(注:在Sun的编码规范中,一个制表符是8个空额,而非4个)。

3.1 行长度(Line Length)

尽量避免一行的长度超过120个字符,因为很多终端和工具不能很好处理之。

注意:用于文档中的例子应该使用更短的行长,长度一般不超过70个字符。

3.2 换行(Wrapping Lines)

当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之:

●在一个逗号后面断开

●在一个操作符前面断开

●宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开

●新的一行应该与上一行同一级别表达式的开头处对齐

●如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进8个空

格。

以下是断开方法调用的一些例子:

以下是两个断开算术表达式的例子。前者更好,因为断开处位于括号表达式的外边,这是个较高级别的断开。

以下是两个缩进方法声明的例子。前者是常规情形。后者若使用常规的缩进方式将会使第二行和第三行移得很靠右,所以代之以缩进8个空格

if语句的换行通常使用8个空格的规则,因为常规缩进(4个空格)会使语句体看起来比较费劲。比如:

这里有三种可行的方法用于处理三元运算表达式:

4注释(Comments)

Java程序有两类注释:实现注释(implementation comments)和文档注释(document comments)。实现注释是那些在C++中见过的,使用/*...*/和//界定的注释。文档注释(被称为"doc comments")是Java独有的,并由/**...*/界定。文档注释可以通过javadoc工具转换成HTML文件。

实现注释用以注释代码或者实现细节。文档注释从实现自由(implementation-free)的角度描述代码的规范。它可以被那些手头没有源码的开发人员读懂。

注释应被用来给出代码的总括,并提供代码自身没有提供的附加信息。注释应该仅包含与阅读和理解程序有关的信息。例如,相应的包如何被建立或位于哪个目录下之类的信息不应包括在注释中。

在注释里,对设计决策中重要的或者不是显而易见的地方进行说明是可以的,但应避免提供代码中己清晰表达出来的重复信息。多余的的注释很容易过时。通常应避免那些代码更新就可能过时的注释。

注意:频繁的注释有时反映出代码的低质量。当你觉得被迫要加注释的时候,考虑一下重写代码使其更清晰。

注释不应写在用星号或其他字符画出来的大框里。注释不应包括诸如制表符和回退符之类的特殊字符。

4.1 实现注释的格式(Implementation Comment Formats)

程序可以有4种实现注释的风格:块(block)、单行(single-line)、尾端(trailing)和行末(end-of-line)。

4.1.1 块注释(Block Comments)

块注释通常用于提供对文件,方法,数据结构和算法的描述。块注释被置于每个文件的开始处以及每个方法之前。它们也可以被用于其他地方,比如方法内部。在功能和方法内部的块注释应该和它们所描述的代码具有一样的缩进格式。

块注释之首应该有一个空行,用于把块注释和代码分割开来,比如:

4.1.2 单行注释(Single-Line Comments)

短注释可以显示在一行内,并与其后的代码具有一样的缩进层级。如果一个注释不能在一行内写完,就该采用块注释。单行注释之前应该有一个空行。以下是一个Java代码中单行注释的例子:

4.1.3 尾端注释(Trailing Comments)

极短的注释可以与它们所要描述的代码位于同一行,但是应该有足够的空白来分开代码

和注释。若有多个短注释出现于大段代码中,它们应该具有相同的缩进。以下是一个Java 代码中尾端注释的例子:

4.1.4 行末注释(End-Of-Line Comments)

注释界定符"//",可以注释掉整行或者一行中的一部分。它一般不用于连续多行的注释文本;然而,它可以用来注释掉连续多行的代码段。以下是所有三种风格的例子:

4.2 文档注释(Documentation Comments)

注意:此处描述的注释格式之范例,参见"Java源文件范例"

若想了解更多,参见"How to Write Doc Comments for Javadoc",其中包含了有关文档注释标记的信息(@return, @param, @see):

若想了解更多有关文档注释和javadoc的详细资料,参见javadoc的主页:

文档注释描述Java的类、接口、构造器,方法,以及字段(field)。每个文档注释都会被置于注释定界符/**...*/之中,一个注释对应一个类、接口或成员。该注释应位于声明之前:

注意顶层(top-level)的类和接口是不缩进的,而其成员是缩进的。描述类和接口的文档注释的第一行(/**)不需缩进;随后的文档注释每行都缩进1格(使星号纵向对齐)。成员,包括构造函数在内,其文档注释的第一行缩进4格,随后每行都缩进5格。

若你想给出有关类、接口、变量或方法的信息,而这些信息又不适合写在文档中,则可使用实现块注释(见5.1.1)或紧跟在声明后面的单行注释(见5.1.2)。例如,有关一个类实现的细节,应放入紧跟在类声明后面的实现块注释中,而不是放在文档注释中。

文档注释不能放在一个方法或构造器的定义块中,因为Java会将位于文档注释之后的第一个声明与其相关联。

5声明(Declarations)

5.1 每行声明变量的数量(Number Per Line)

推荐一行一个声明,因为这样以利于写注释。即,

要优于,

不要将不同类型变量的声明放在同一行,例如:

注意:上面的例子中,在类型和标识符之间放了一个空格,另一种被允许的替代方式是使用制表符:

5.2 初始化(Initialization)

尽量在声明局部变量的同时初始化。唯一不这么做的理由是变量的初始值依赖于某些先前发生的计算。

5.3 布局(Placement)

只在代码块的开始处声明变量。(一个块是指任何被包含在大括号"{"和"}"中间的代码。)不要在首次用到该变量时才声明之。这会把注意力不集中的程序员搞糊涂,同时会妨碍代码在该作用域内的可移植性。

该规则的一个例外是for循环的索引变量

避免声明的局部变量覆盖上一级声明的变量。例如,不要在内部代码块中声明相同的变量名:

5.4 类和接口的声明(Class and Interface Declarations)

当编写类和接口时,应该遵守以下格式规则:

●在方法名与其参数列表之前的左括号"("间不要有空格

●左大括号"{"位于声明语句同行的末尾

●右大括号"}"另起一行,与相应的声明语句对齐,除非是一个空语句,"}"应紧跟在"{"之

●方法与方法之间以空行分隔

6语句(Statements)

6.1 简单语句(Simple Statements)

每行至多包含一条语句,例如:

6.2 复合语句(Compound Statements)

复合语句是包含在大括号中的语句序列,形如"{ 语句}"。

●被括其中的语句应该较之复合语句缩进一个层次。

●左大括号"{"应位于复合语句起始行的行尾;右大括号"}"应另起一行并与复合语句首行

对齐。

●大括号可以被用于所有语句,包括单个语句,只要这些语句是诸如if-else或for控制结

构的一部分。这样便于添加语句而无需担心由于忘了加括号而引入bug。

6.3 返回语句(return Statements)

一个带返回值的return语句不使用小括号"()",除非它们以某种方式使返回值更为显见。例如:

6.4 if-else语句(if-else Statements)

if-else语句应该具有如下格式:

注意:if语句总是用"{"和"}"括起来,避免使用如下容易引起错误的格式:

6.5 for语句(for Statements)

一个for语句应该具有如下格式:

一个空的for语句(所有工作都在初始化,条件判断,更新子句中完成)应该具有如下格式:

当在for语句的初始化或更新子句中使用逗号时,避免因使用三个以上变量,而导致复杂度提高。若需要,可以在for循环之前(为初始化子句)或for循环末尾(为更新子句)使用单独的语句。

6.6 while语句(while Statements)

一个while语句应该具有如下格式

一个空的while语句应该具有如下格式:

6.7 do-while语句(do-while Statements)

一个do-while语句应该具有如下格式:

6.8 switch语句(switch Statements)

一个switch语句应该具有如下格式:

每当一个case顺着往下执行时(因为没有break语句),通常应在break语句的位置添加注释。上面的示例代码中就包含注释/* falls through */。

6.9 try-catch语句(try-catch Statements)

一个try-catch语句应该具有如下格式:

一个try-catch语句后面也可能跟着一个finally语句,不论try代码块是否顺利执行完,它都会被执行。

7空白(White Space)

7.1 空行(Blank Lines)

空行将逻辑相关的代码段分隔开,以提高可读性。

下列情况应该总是使用两个空行:

●一个源文件的两个片段(section)之间

●类声明和接口声明之间

下列情况应该总是使用一个空行:

●两个方法之间。

●方法内的局部变量和方法的第一条语句之间。

●块注释或单行注释之前。

●一个方法内的两个逻辑段之间,用以提高可读性

7.2 空格(Blank Spaces)

下列情况应该使用空格:

●一个紧跟着括号的关键字应该被空格分开

例如:

注意:空格不应该置于方法名与其左括号之间。这将有助于区分关键字和方法调用。

●空白应该位于参数列表中逗号的后面

●所有的二元运算符,除了".",应该使用空格将之与操作数分开。一元操作符和操

作数之间不因该加空格,比如:负号("-")、自增("++")和自减("--")。

例如:

●for语句中的表达式应该被空格分开,例如:

●强制转型后应该跟一个空格,例如:

8命名规范(Naming Conventions)

命名规范使程序更易读,从而更易于理解。它们也可以提供一些有关标识符功能的信息,以助于理解代码,例如,不论它是一个常量,包,还是类。

8.1 包(Packages)

一个唯一包名的前缀总是全部小写的ASCII字母并且是一个顶级域名,通常是com,edu,gov,mil,net,org,或1981年ISO 3166标准所指定的标识国家的英文双字符代码。包名的后续部分根据不同机构各自内部的命名规范而不尽相同。这类命名规范可能以特定目录名的组成来区分部门(department),项目(project),机器(machine),或注册名(login names)。

例如:

com.sun.eng

com.apple.quicktime.v2

edu.cmu.cs.bovik.cheese

8.2 类(Classes)

类名是个一名词,采用大小写混合的方式,每个单词的首字母大写。尽量使你的类名简洁而富于描述。使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML) 例如:

class Raster;

classImageSprite;

8.3 接口(Interfaces)

大小写规则与类名相似。例如:interfaceRasterDelegate; interface Storing;

8.4方法(Methods)

方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。例如:run(); runFast(); getBackground();

8.5变量(Variables)

除了变量名外,所有实例,包括类,类常量,均采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。

变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型。

例如:char c; inti;float myWidth;

华为JAVA编码规范

1.程序块采用缩进风格,空格为4个. 说明: 对于开发工具自动生成的代码可以不一致 2.分界符(如大括号{和})应各自占一行并且在同一列,同时与引用它们的 语句左对齐,在方法的开始,类和接口的定义,以及if,for,do,while,switch,case语句都要采用上述缩进 说明: for(…) { … 说明: if(filename != null && new File(logPath+filename).length() < ()) { 3.…作符) 说明: 采用这种松散方式编写代码目的是让程序更加清晰,由于空格所产生的清晰性是相对的,所以在已经很清晰的语句中没有必要留空格,如果语句已足够清晰,则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为java中括号已经是很清晰的标志了. 在长句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部

中不加空格,给操作符留空格时不要连续留两个以上空格 4.类属性和方法不要交叉放置,不同存取范围的属性和方法也不要交叉放 置 说明: 类定义:{ 类公有属性定义; 类保护属性定义; 类私有属性定义; 类公有方法定义; 类保护方法定义; 类私有方法定义; } 5.源程序的有效注释量必须在30%以上 6.包的注释写入一个名为的html格式的说明文件放入当前路径 7.包的注释内容:本包作用,详细描述本包内容,产品模块名称及版本,公 司版本 说明: 一句话描述 详细描述

产品模块
公司版本信息 8.文件注释:写入文件头部,包名之前 9.文件注释内容:版本说明,描述信息,修改历史,生成日期 说明: /* *文件名 *版权 *描述 *修改人 *修改时间 *修改内容 *跟踪单号 *修改单号 */ 10.类和接口注释:放在package注释之后,class或interface之前 11.类和接口注释内容:类的注释要一句话功能描述,功能详细描述 说明:

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编程规范试题

姓名: ____________ 工号:_______________ 部门:____________ 成绩: 一. 判断题(共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编程规范

1 Java 编程规范 1.1 排版 1.1.1 规则 规则1程序块要采用缩进风格编写,缩进的空格数为4个,不允许使用TAB缩进。(1.42+) 说明:缩进使程序更易阅读,使用空格缩进可以适应不同操作系统与不同开发工具。 规则2分界符(如大括号…{?和…}?)应各独占一行,同时与引用它们的语句左对齐。在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序 或者static、,synchronized等语句块中都要采用如上的缩进方式。(1.42+) 示例: if (a>b) { doStart(); } 规则3较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐, 语句可读。(1.42+) 示例: if (logger.isDebugEnabled()) { logger.debug("Session destroyed,call-id" + event.getSession().getCallId()); } 规则4不允许把多个短语句写在一行中,即一行只写一条语句(1.42+) 说明:阅读代码更加清晰 示例:如下例子不符合规范。 Object o = new Object(); Object b = null; 规则5if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while,switch等语句的执行语句无论多少都要加括号{},case 的执行语句中如果定义变量必须加括号{}。 (1.42+) 说明:阅读代码更加清晰,减少错误产生 示例: if (a>b) { doStart(); }

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)题库

多选 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编程规范--试题 姓名:工号:部门:成绩: 一. 判断题(共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.所有的标识都只能使用ASCII字母(A-Z或a-z)、数字(0-9)和 下划线”_”。 2.一个唯一包名的前缀总是用全部小写的字母。 3.类名是一个名词,采用大小写混合的方式,每个单词的首字母大 写。 4.接口的大小写规则与类名相似。 5.方法名是一个动词或是动词词组,采用大小写混合的方式,第一 个单词的首字母小写,其后单词的首字母大写。 6.变量名的第一个字母小写,任何中间单词的首字母大写,变量名 应简短且可以顾名思义,易于记忆。避免单个字符的变量名,除非是一次性的临时变量。 7.常量的声明应该全部大写,每个单词之间用”_”连接。 注释规范: 1.注释尽可能使用”//”,对于所有的Javadoc的注释使用/***/,而 临时对代码块进行注释应尽量使用/**/。 2.所有的源文件都应该在开头有一个注释,其中列出文件名、日期 和类的功能概述。每个方法必须添加文档注释(main除外)。 3.每个属性必须加注释。 4.代码中至少包含15%的注释。 5.注释使用中文。

缩进排版规范: 1.避免一行的长度超过60个字符。 2.使用Eclipse源代码的格式化功能完成代码的缩进排版。 文件名规范: 1.一个Java源文件只能储存一个Java类。 2.文件名与Java类相同。 3.一个类文件不超过200行。 声明规范: 1.一行声明一个变量。 2.不要将不同类型变量的声明放在同一行。 3.只在代块的开始处声明变量。 4.所有的变量必须在声明时初始化。 5.避免声明的局部变量覆盖上一级声明的变量。 6.方法与方法直接以空行分隔。 语句规范: 1.每行至少包含一条简单语句。 2.在return语句中,返回值不使用小括号”()”括起来。 3.If月总是用{和}括起来。 4.在for语句的初始化或者更新子句中,避免因使用3个以上变量, 而导致复杂度提高。 5.当switch的一个case顺着往下执行时(因为没有break),通常 应在break语句的位置添加注释。

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(删除)、在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构来确定,并且异常和错误码不应该混合使用,推荐使用异常。 说明: 一个系统或者模块应该统一规划异常类型和返回码的含义。 但是不能用异常来做一般流程处理的方式,不要过多地使用异常,异常的处理效率比条件分支低,而且异常的跳转流程难以预测。

(完整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语言编码规范

Table of Contents 目录 1. 范围 (3) 2. 术语和定义 (3) 3. 排版规范 (4) 3.1. 规则 (4) 3.2. 建议 (6) 4. 注释规范 (7) 4.1. 规则 (7) 4.2. 建议 (12) 5. 命名规范 (14) 5.1. 规则 (14) 5.2. 建议 (15) 6. 编码规范 (17) 6.1. 规则 (17) 6.2. 建议 (20) 7. JTEST规范 (22) 7.1. 规则 (22) 7.2. 建议 (23)

1.范围 本规范规定了使用Java语言编程时排版、注释、命名、编码和JTest的规则和建议。 本规范适用于使用Java语言编程的案例、产品和项目。 2.术语和定义 规则:编程时强制必须遵守的原则。 建议:编程时必须加以考虑的原则。 格式:对此规范格式的说明。 说明:对此规范或建议进行必要的解释。 示例:对此规范或建议从正、反两个方面给出例子。

3.排版规范 3.1.规则 3.1.1.*程序块要采用缩进风格编写,缩进的空格数为4个。 说明:对于由开发工具自动生成的代码可以有不一致。 3.1.2.*语句块分隔符左括号‘{’应与语句块引用代码在同一行,右括号‘}’应另起一行并 与语句块引用代码左对齐。在函数体的开始、类和接口的定义、以及if、for、do、 while、switch、case语句中的程序都要采用如上的缩进方式。 示例:如下例子不符合规范。 for (...) { ... // program code } if (...) { ... // program code } void example_fun( void ) { ... // program code } 应如下书写: for (...){ ... // program code } if (...){ ... // program code } void example_fun( void ){ ... // program code } 3.1.3.*较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作 符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。 示例: if (filename != null && new File(logPath + filename).length() < LogConfig.getFileSize()){ ... // program code } public static LogIterator read(String logType, Date startTime, Date endTime, int logLevel, String userName, int bufferNum) 3.1.4.*不允许把多个短语句写在一行中,即一行只写一条语句

java代码规范要求(公司用-补充版)

代码规范要求 为保证我公司研发代码的规范性、可读性,特制定该代码规范: 1、代码应遵循国际java代码规范 2、代码中所有switch(param){case int:break;}中case 参数应该为在类开始时定义的字符串,以增加后续研发中的可读性。例:private final int company=0; switch(param){case company:break;}不允许出现case0,case1等字样。 3、在对数据库进行大量数据读取时,应采用jdbc方式读取。以增快响应速度,减少内存消耗。数据量超过万单位时必须采用jdbc读取数据库,且应分页读取数据库。 4、方法作用必须注释,方法中传递的参数应该有注释,全局变量,局部变量都应有注释,以说明变量的意义。如方法会被多次调用,或应对二次开发则应注明返回值例:return Boolean true成功false失败; 5、代码中应该采用try catch捕获异常,且应该处理常见异常。 6、代码呈现页面不能出现null字样。 7、代码测试应用及所需捕获异常或输出信息应该采用log4j 进行输出。杜绝出现System.out.println();字样 8、代码不应出现重复定义,同一方法不能多次调用数据库,

如一个方法中需要多次调用数据库则应拆分为两个或多个。 9、同一方法中代码量超过50行则应进行拆分。 10、代码应该采用format格式化。 11、代码已经提交或二次开发时,应注明修改时间修改人修改原因修改后提交参数的内容 12、在未进行实例化的参数判断是否为空时,应该null在前例:if(null!=param) 13、在判断变量是否为空时,尽量避免采用if else应采用Parame==null?”0”:parame;进行判断赋值 14、代码应遵循可读性原则,不能出现过于冗长的代码。 15、多次在不同类中反复调用且内容相同的方法,应该写到公用代码中进行调用。 16、已经失效,且不会被调用的代码应该注销、删除。 17、代码在未经测试时,不要进行提交,以免造成现调用的其他类出现错误。 18、项目的配置文档应该遵循规范格式,尽量增加注释。 19、页面中的js脚本应该具备可读性、增加注释。Js脚本的规范遵从国际js规范。 20、页面中提交的必要的变量参数应该有验证。 21、页面提交的信息或执行时间较长、页面上传文档时应该提示用户正在执行等字样。 22、页面ext的方法复写定义应该在项目中为唯一,不得出

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编程规范试题 一、判断题(每题2分,共28分) 1、if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while, switch, case等语句的执行语句无论多少都要加括号{}。 2、包的注释内容要求包括:简述本包的作用、详细描述本包的内容、产品模块 名称和版本、公司版权、生成日期等。 3、类注释部分,描述部分说明该类或者接口的功能、作用、使用方法和注意事 项,每次修改后增加作者、新版本号和当天的日期,@since 表示从那个版本开始就有这个类或者接口,@deprecated 表示不建议使用该类或者接口。4、对于方法内部用throw语句抛出的异常,必须在方法的注释中标明;对于所 调用的其他方法所抛出的异常,在注释中要求说明所有的异常;对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。 5、类名和接口使用完整的英文单词描述,每个英文单词的首字母使用大写、其 余字母使用小写的大小写混合法。 6、com.huawei.四级部门名称.项目名称,符合包命名规范。 7、不能用异常来做一般流程处理的方式,不要过多地使用异常,异常的处理效 率比条件分支低,而且异常的跳转流程难以预测。 8、划分类的时候,应该尽量把逻辑处理、数据和显示分离,实现类功能的多样 化。 9、一个方法不应抛出太多类型的异常,如果程序中需要分类处理异常,则将异 常根据分类组织成继承关系。 10、switch 语句中的 case 关键字要和后面的常量保持一个空格;如果有特殊 的需要要在switch语句中定义case以外的标签,需要在注释中说明。 11、没有被覆盖的友好方法和没有子类的友好类应该定义成final。 12、简单的类可以通过名字比较两个对象的类,推荐使用 getClass()或者 instanceof()。 13、不要调用 Thread 类的 resume(), suspend(),sleep(), stop() 方法。

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

目录 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代码规范总结.pdf

Java代码规范总结 作为一名合格的程序员,代码就是其战斗的武器,因此,武器的好坏,武器的品质,也一定程度上体现了程序员的 水平和影响对功能的实现,因此良好的代码的规范,在一定程度上,所表现的作用是很大的,应该引起广大程序员,尤 其是初级程序员的注意。因此,我总结了一下几点: 1.命名规范 1).所有的标示符只能用英文字母,数字,下划线 2).包名全小写 3).类名是一个名词,大小写混合,每个单词的首字母大写 4).接口的规则与类名相似 5).方法名第一个字母小写,中间单词的首字母大写,采用驼峰标识 6).变量名的规则与方法名相似 7).常量的声明是全部大写,每个单词之间用"_"连接 2.注释规范 注释有:单行注释"//", 多行注释"/*..*/", 文档注释"/**....*/" 1).注释尽可能使用“//”,对于所有的javadoc的注释则使用“ /**....*/ ",而临时对代码快进行注释尽量使用”/*...*/“。 2).所有的源文件都应该在开头有一个注释,其中列出文件名,日期和类的功能概述,有时还有作者 3).每个方法必须添加文档注释(类的main()方法除外),这样可以使其他人了解这个方法的功能 4).每个属性必须添加注释,让人知道这个属性的含义 5).代码中至少包含15%的注释 6).注释中英文都可 3.缩进排版规范 1).代码应避免一行长度超过60个字符 2).4个空格常被作为缩进排版的一个单位。缩进的确切解释并未详细指定(空格vs. 制表符)。一个制表符等于8个空格(而非4个)。 3). 换行(Wrapping Lines)当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之: a. 在一个逗号后面断开 b. 在一个操作符前面断开 c. 宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开 d. 新的一行应该与上一行同一级别表达式的开头处对齐 e. 如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进8个空格 4).关键词和操作符之间加适当的空格 5).相对独立的程序块与块之间加空行 6).划分出的新行要进行适应的缩进,使排版整齐,语句可读. 7).循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分。 .函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格 4.文件名规范

相关文档
最新文档