Java编程风格与命名规范整理

标签: java 编程 命名 | 发表时间:2012-03-26 12:45 | 作者:脉凌网络
出处:http://www.blogjava.net/
基本命名规范

    包命名

    包名按照域名的范围从大到小逐步列出,恰好和Internet上的域名命名规则相反。

    由一组以“。”连接的标识符构成,通常第一个标识符为符合网络域名的两个或者三个英文小写字母。

    People  TestPage  XMLExample

    类,接口命名

    类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。

    People  TestPage  XMLExample

    方法名

    方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。可以为动词或动词+名词组合。

    设置/获取某个值的Method,应该遵循setV/getV规范

    返回长度的Method,应该命名为length

    测试某个布尔值的Method,应该命名为isV

    将对象转换为某个特定类型的Mehod应该命名为toF

    getDate();  length();  isReady();  toOracleFormat();

    变量名

    1.普通变量命名应该采用首字母小写,其他字母首字母大写的方式。

    2.final static变量的名字应该都大写,并且指出完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词如。

    NUM_DAYS_IN_WEEK  MAX_VALU

    3. 如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性

    context=ctx  message=msg

    4. 通过在结尾处放置一个量词,就可创建更加统一的变量

    First(一组变量中的第一个)  Last(一组变量中的最后一个)  Next(一组变量中的下一个变量)  Prev(一组变量中的上一个)  Cur(一组变量中的当前变量)

    5. 无论什么时候,均提倡应用常量取代数字、固定字符串。也就是说,程序中除0,1以外,尽量不应该出现其他数字。

    6. 索引变量:i、j、k等只作为小型循环的循环索引变量。

    7. 逻辑变量:避免用flag来命名状态变量,用is来命名逻辑变量。

    if(isClosed){  dosomeworks;  return;  }

    数组

    总是使用以下方式定义数组:

    int[] arr = new int[10];

    禁止使用C语言的是形式:

    禁止  int arr[] = new int[10];

    集合

    数组或者容器推荐命名方式为名词+s的方式,例如:

    List<Person> persons = getPerson();  for(Person person : persons){  dosomeworks;  }

    泛型

    应该尽量简明扼要(最好是一个字母),以利于与普通的class或interface区分

    Container中的Element应该用E表示;Map里的key用K表示,value用V;Type用T表示;异常用X表示

    如果需要接收多个Type类型的参数,应该用邻接T的大写字母——例如S——来依次表示,当然也可以用T1, T2这样的方式

    public class HashSet<E> extends AbstractSet<E> {…}   public class HashMap<K, V> extends AbstractMap<K, V> {…}   public class ThreadLocal<T> {…}   public interface Functor<T, X extends Throwable> {       T val() throws X;   }

    推荐的命名

    1.当要区别接口和实现类的时候,可以在类的后面加上“Impl”。

    interface Container  class ContainerImpl

    2.Exception类最好能用“Exception”做为类命名的结尾

    DataNotFoundException  InvalidArgumentException

    3.抽象类最好能用“Abstract”做为类命名的开头

    AbstractBeanDefinition  AbstractBeanFactory

    4. Test类最好能用“Test”做为类命名的结尾

    ContainerTest

    5.简称与缩写(不推荐使用)

    cp代表colorPoint   buf代表buffer   off代表offset   len代表length

    除非是在循环中,否则一般不推荐使用单个字母作为变量名,不过也有例外,即约定俗成的单个字母

    b代表byte  c代表char  d代表double  e代表Exception   f代表float  i, j, k代表整数   l代表long  o代表Object   s代表String   v代表某些类型的特定值

    代码风格

    花括号

    花括号统一采用以下格式:

    if(bool experssion){  dosomework;  }

    除非花括号中为空,不然任何情况下不能省略花括号,并且花括号必须换行,例如:

    if(i==0){  return;  }  while(true) {}

    以下写法禁止出现:

    禁止  if(i != 0) return;  禁止  if(i !=0) {return;}

    括号

    括号的前,后一个字符不需要空格,例如:

    Person p = new Person(“Jack”, 17);

    空格

    逗号之后紧跟一个空格。

    Person p = new Person(“Jack”, 16, “China”);

    2. 二元操作符前后跟空格。

    int i = a + b – c * d;

    3. 一元操作符不需要空格,for语句分号后有空格。

    for(int i = 0; I < 10; i++){  dosomework;  }

    4. 括号前后不需要空格

    类

    类的定义结构按照顺序为:

    1) 常量

    2) 成员变量

    3) 构造函数

    4) 成员函数

    5) get和set方法

    各个部分之间留出一个空行。

    例如:

    规范类模板:

    class Person{      private final static int MAX_AGE = 100;       private String firstname = “Jack”;       public Person(){}  public Person(String firstname){      this.firstname = firstname;  }   public void doExercise(){      dosomeworks;      run();  }  private void run(){      dosomeworks;  }   public getFirstname(){      return firstname;  }  public setFirstname(String firstname){      this.firstname = firstname;  }  }

    2.构造函数

    1) 参数为空的构造函数出现在最上方

    2) 有调用关系的构造函数相邻

    3) 参数尽量由少到多从上至下排序

    3.使用成员变量

    在类的方法内引用成员变量了命名冲突以外,不使用this。非特殊情况在类的方法内都不使用get和set方法存取成员变量。

    4.方法

    有调用关系的方法尽量放在相邻的位置,public和private方法可以交叉放置。

    5.get和set方法,所有需要公开的成员变量都要符合良好的javabean规范,提供get和set方法,尽量使用IDE工具自动生成。

    Javadoc注释

    在每个程序的最开始部分,一般都用Javadoc注释对程序的总体描述以及版权信息,之后在主程序中可以为每个类、接口、方法、字段添加 Javadoc注释,每个注释的开头部分先用一句话概括该类、接口、方法、字段所完成的功能,这句话应单独占据一行以突出其概括作用,在这句话后面可以跟随更加详细的描述段落。在描述性段落之后还可以跟随一些以Javadoc注释标签开头的特殊段落,例如上面例子中的@auther和@version,这些段落将在生成文档中以特定方式显示



脉凌网络 2012-03-26 12:45 发表评论

相关 [java 编程 命名] 推荐:

Java编程风格与命名规范整理

- - BlogJava-首页技术区
基本命名规范     包命名.     包名按照域名的范围从大到小逐步列出,恰好和Internet上的域名命名规则相反. ”连接的标识符构成,通常第一个标识符为符合网络域名的两个或者三个英文小写字母.     类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词.

Java编程规范

- - Web前端 - ITeye博客
本文档的编写从简,绝大多数内容以条款或者表格形式列出,不做过多的补充说明,代码格式规范遵循eclipse的默认编码规范要求. •    简单,易执行. 1.    名字含义要明确,做到见名知义,如: User,Role, UserManager. 2.    尽量使用英文名字作为变量名,如果要使用中文,请写上备注.

Java并发编程基础

- - 并发编程网 - ifeve.com
并发是一种能并行运行多个程序或并行运行一个程序中多个部分的能力. 如果程序中一个耗时的任务能以异步或并行的方式运行,那么整个程序的吞吐量和可交互性将大大改善. 现代的PC都有多个CPU或一个CPU中有多个核. 是否能合理运用多核的能力将成为一个大规模应用程序的关键. 进程是以独立于其他进程的方式运行的,进程间是互相隔离的.

java编程风格指南

- - 行业应用 - ITeye博客
受不了的可以直接到以下网址查看. 作者:Hawstein 出处:http://hawstein.com/posts/google-java-style.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处.

面向GC的Java编程

- - 并发编程网 - ifeve.com
Java程序员在编码过程中通常不需要考虑内存问题,JVM经过高度优化的GC机制大部分情况下都能够很好地处理堆(Heap)的清理问题. 以至于许多Java程序员认为,我只需要关心何时创建对象,而回收对象,就交给GC来做吧. 甚至有人说,如果在编程过程中频繁考虑内存问题,是一种退化,这些事情应该交给编译器,交给虚拟机来解决.

java 并发编程 synchronized

- - Java - 编程语言 - ITeye博客
同步原语--synchronized. synchronized(class)很特别,它会让另一个线程在任何需要获取class做为monitor的地方等待.class与this做为不同的监视器可以同时使用,不存在一个线程获取了class,另一个线程就不能获取该class的一切实例.. ->线程各自获取monitor,不会有等待..

Java NIO编程的技巧和陷阱

- 小丑鱼 - 淘宝JAVA中间件团队博客
去年做的分享,一直上传slideshare失败,今天又试了下,成功了. 这个主题主要介绍Java NIO编程的技巧和陷阱,解读了一些NIO框架的源码,以及编写高性能NIO网络框架所需要注意的技巧和缺陷. 去年写了篇blog提供了pdf版本的下载,看这里.

JAVA接口编程的优点

- - ITeye博客
小弟刚工作两年文中所说都是通过自己工作中或做练习总结的经验,当然肯定不是那么准确,有不对之处望和谐指出,因为这个感觉完全是理论所以没有贴一段代码,有兴趣的就看看吧. 项目开发中绝对会碰到接口,但是为什么要使用接口成了绝大多数java程序员的疑问,为什么一定要写个没有实现任何功能的只有几个方名的类,可能也有一些人明白接口就是好,但好在哪里很难解释出来,我当初也是这样想的,但是当我一瞬间觉悟后发现这种想法很幼稚.

Java并发编程【1.2时代】

- - 并发编程网 - ifeve.com
         本文介绍了Java原生的多线程技术(1.2),通过详细介绍wait和notify相关的机制、基础的多线程技术以及基于这些技术的等待超时、线程间的通信技术和线程池高阶技术,最后通过一个基于线程池的简单文本web服务器—MollyServer,来阐明多线程带来好处. 通过介绍这些技术,展示了在没有使用Java并发包的时代(1.5-)是如何完成Java的多线程编程,为理解Java5提供了良好帮助.

Java 异步编程最佳实践

- - 鸟窝
最近异步编程非常流行, 主要是它能够在多核系统上提高吞吐率. 异步编程是一种编程方式,可以提高对UI的快速响应. Java中的异步编程模型提供了一致性的编程模型, 可以用来在程序中支持异步. 本文讨论了在使用Java执行异步操作应该遵循的最佳实践. 原文: Best Practices of Asynchronous Programming With Java.