`
wangyanlong0107
  • 浏览: 504682 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

【转】Java编码规范,在您进行编码之前应该阅读的规范

 
阅读更多

本文转载于:http://www.web3d.com.cn/new/teach/java3d/2006/11/13/363276161.html

 

Java编码规范 说明 1.1 为什么要有编码规范 编码规范对于程序员而言尤为重要,有以下几个原因: 一个软件的生命周期中,80%的花费在于维护。 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护。 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码。


如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品。 为了执行规范,每个软件开发人员必须一致遵守编码规范。每个人!!! 1.2版权声明 本文档反映的是Sun MicroSystems公司,Java语言规范中的编码标准部分。主要贡献者包括:Peter King,Patrick Naughton,Mike DeMoney,Jonni Kanerva,Kathy Walrath以及Scott Hommel。本文档现由Scott Hommel维护,有关评论意见请发至shommel@eng.sun.com 2. 文件名(File Names) 这部分列出了常用的文件名及其后缀。 2.1 文件后缀(File Suffixes) Java程序使用下列文件后缀: 

文件类别 文件后缀 Java源文件 .java 
Java字节码文件 .class 
2.2 常用文件名(Common File Names) 
常用的文件名包括: 

文件名 用途 

GNUmakefile makefiles的首选文件名。我们采用gnumake来创建(build)软件。 README 概述特定目录下所含内容的文件的首选文件名 3. 文件组织(File Organization) 一个文件由被空行分割而成的段落以及标识每个段落的可选注释共同组成。超过2000行的程序难以阅读,应该尽量避免。“Java源文件范例”提供了一个布局合理的Java程序范例。 3.1 Java源文件(Java Source Files) 每个Java源文件都包含一个单一的公共类或接口。若私有类和接口与一个公共类相关联,可以将它们和公共类放入同一个源文件。公共类必须是这个文件中的第一个类或接口。 Java源文件还遵循以下规则: 开头注释(参见"开头注释") 
包和引入语句(参见"包和引入语句") 
类和接口声明(参见"类和接口声明") 3.1.1 开头注释(Beginning Comments) 所有的源文件都应该在开头有一个C语言风格的注释,其中列出类名、版本信息、日期和版权声明: /* 
* Classname 

* Version information 

* Date 

* Copyright notice 
*/ 3.1.2 包和引入语句(Package and Import Statements) 
在多数Java源文件中,第一个非注释行是包语句。在它之后可以跟引入语句。 例如: 
package java.awt; 
import java.awt.peer.CanvasPeer; 3.1.3 类和接口声明(Class and Interface Declarations) 下表描述了类和接口声明的各个部分以及它们出现的先后次序。参见“Java源文件范例”中一个包含注释的例子。 

类/接口声明的各部分 注解 1、 类/接口文档注释(/**……*/) 该注释中所需包含的信息,参见"文档注释" 

2、 类或接口的声明 

3、 类/接口实现的注释(/*……*/)如果有必要的话 该注释应包含任何有关整个类或接口的信息,而这些信息又不适合作为类/接口文档注释。 

4、 类的(静态)变量 首先是类的公共变量,随后是保护变量,再后是包一级别的变量(没有访问修饰符,access modifier),最后是私有变量。 

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

6、 构造器 7、 方法 这些方法应该按功能,而非作用域或访问权限,分组。例如,一个私有的类方法可以置于两个公有的实例方法之间。其目的是为了更便于阅读和理解代码。 

4. 缩进排版(Indentation) 4个空格常被作为缩进排版的一个单位。缩进的确切解释并未详细指定(空格 vs. 制表符)。一个制表符等于8个空格(而非4个)。 4.1 行长度(Line Length) 尽量避免一行的长度超过80个字符,因为很多终端和工具不能很好处理之。 注意:用于文档中的例子应该使用更短的行长,长度一般不超过70个字符。 4.2 换行(Wrapping Lines) 当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之: 在一个逗号后面断开。 在一个操作符前面断开。 宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开。 新的一行应该与上一行同一级别表达式的开头处对齐。 如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进8个空格。 以下是断开方法调用的一些例子: someMethod(longExpression1, longExpression2, longExpression3, 
longExpression4, longExpression5); 
var = someMethod1(longExpression1, 
someMethod2(longExpression2, 
longExpression3)); 以下是两个断开算术表达式的例子。前者更好,因为断开处位于括号表达式的外边,这是个较高级别的断开。 longName1 = longName2 * (longName3 + longName4 - longName5) 
+ 4 * longname6; //PREFFER 
longName1 = longName2 * (longName3 + longName4 
- longName5) + 4 * longname6; //AVOID 以下是两个缩进方法声明的例子。前者是常规情形。后者若使用常规的缩进方式将会使第二行和第三行移得很靠右,所以代之以缩进8个空格 //CONVENTIONAL INDENTATION 
someMethod(int anArg, Object anotherArg, String yetAnotherArg, 
Object andStillAnother) { 
... 
} //INDENT 8 SPACES TO AVOID VERY DEEP INDENTS 
private static synchronized horkingLongMethodName(int anArg, 
Object anotherArg, String yetAnotherArg, 
Object andStillAnother) { 
... 


if语句的换行通常使用8个空格的规则,因为常规缩进(4个空格)会使语句体看起来比较费劲。比如: //DON’T USE THIS INDENTATION 
if ((condition1 && condition2) 
|| (condition3 && condition4) 
||!(condition5 && condition6)) { //BAD WRAPS 
doSomethingAboutIt(); //MAKE THIS LINE EASY TO MISS 
} //USE THIS INDENTATION INSTEAD 
if ((condition1 && condition2) 
|| (condition3 && condition4) 
||!(condition5 && condition6)) { 
doSomethingAboutIt(); 
} //OR USE THIS 
if ((condition1 && condition2) || (condition3 && condition4) 
||!(condition5 && condition6)) { 
doSomethingAboutIt(); 


这里有三种可行的方法用于处理三元运算表达式: alpha = (aLongBooleanExpression) ? beta : gamma; 
alpha = (aLongBooleanExpression) ? beta 
: gamma; 
alpha = (aLongBooleanExpression) 
? beta 
: gamma; 5. 注释(Comments) Java程序有两类注释:实现注释(implementation comments)和文档注释(document comments)。实现注释是那些在C++中见过的,使用/*...*/和//界定的注释。文档注释(被称为“doc comments”)是Java独有的,并由/**...*/界定。文档注释可以通过javadoc工具转换成HTML文件。 实现注释用以注释代码或者实现细节。文档注释从实现自由(implementation-free)的角度描述代码的规范。它可以被那些手头没有源码的开发人员读懂。 注释应被用来给出代码的总括,并提供代码自身没有提供的附加信息。注释应该仅包含与阅读和理解程序有关的信息。例如,相应的包如何被建立或位于哪个目录下之类的信息不应包括在注释中。 在注释里,对设计决策中重要的或者不是显而易见的地方进行说明是可以的,但应避免提供代码中己清晰表达出来的重复信息。多余的的注释很容易过时。通常应避免那些代码更新就可能过时的注释。 
注意:频繁的注释有时反映出代码的低质量。当你觉得被迫要加注释的时候,考虑一下重写代码使其更清晰。 注释不应写在用星号或其他字符画出来的大框里。注释不应包括诸如制表符和回退符之类的特殊字符。 5.1 实现注释的格式(Implementation Comment Formats) 程序可以有4种实现注释的风格:块(block)、单行(single-line)、尾端(trailing)和行末(end-of-line)。 5.1.1 块注释(Block Comments) 块注释通常用于提供对文件,方法,数据结构和算法的描述。块注释被置于每个文件的开始处以及每个方法之前。它们也可以被用于其他地方,比如方法内部。在功能和方法内部的块注释应该和它们所描述的代码具有一样的缩进格式。 块注释之首应该有一个空行,用于把块注释和代码分割开来,比如: /* 
* Here is a block comment. 
*/ 块注释可以以/*-开头,这样indent(1)就可以将之识别为一个代码块的开始,而不会重排它。 /*- 
* Here is a block comment with some very special 
* formatting that I want indent(1) to ignore. 

* one 
* two 
* three 
*/ 

注意:如果你不使用indent(1),就不必在代码中使用/*-,或为他人可能对你的代码运行indent(1)作让步。

 

分享到:
评论

相关推荐

    阿里Java的编码规范

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

    java规范java编码规范java编码规范java编码规范

    Java编程规范是软件开发中非常重要的一个组成部分,它旨在提高代码的可读性、可维护性和团队间的协作效率。华为技术有限公司的企业技术规范DKBA1040-2001.12...因此,每个Java开发者都应该重视并遵循类似的编码规范。

    华为JAVA编码规范.pdf

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

    阿里巴巴java编码规范

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

    腾讯java编码规范

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

    Java编码规范.docx

    本文将对 Java 编码规范的主要内容进行详细讲解。 命名风格是 Java 编码规范的重要组成部分。Java 编码规范规定,代码中的命名不能以下划线或美元符号开始,也不能以下划线或美元符号结束。同时,代码中的命名也不...

    阿里巴巴Java编码规范.pdf

    编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范编码规范

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

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

    JAVA编码规范试题

    JAVA 编码规范试题 JAVA 编码规范试题是一套涵盖了 JAVA 编程规范的试题,旨在帮助开发者掌握 JAVA 编程的基本规范和best practice。该试题涵盖了 JAVA 编程规范的多个方面,包括变量命名、代码格式、异常处理、...

    百度java编码规范

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

    JAVA编码规范培训

    JAVA编码规范培训

    Java编码规范.doc

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

    Java 编码规范 chm

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

    编码规范 华为编码规范 JAVA 华为编码规范 JAVA

    《华为编码规范JAVA详解》 编码规范是软件开发中至关重要的一环,尤其对于大型企业如华为,一套统一、严谨的编码规范能确保代码的质量、可读性和可维护性。华为编码规范JAVA是华为公司为Java开发者制定的一套详细且...

    华为Java语言编码规范.doc

    华为Java语言编码规范.doc 本文档介绍了华为Java语言编程规范的相关知识点,涵盖编程规范、命名规范、注释规范、编码规范、JTEST规则等内容。 1. 编程规范 编程规范是指在编程时必须遵守的原则,旨在确保代码的...

    java编码规范.zip

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

Global site tag (gtag.js) - Google Analytics