- 浏览: 430437 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (269)
- 原创 (7)
- Java (51)
- Java Concurrency (2)
- IDE (16)
- Linux (46)
- Database (23)
- NoSQL (35)
- Web服务器 (23)
- Log日志 (11)
- HTTP (11)
- HTML (2)
- XML (1)
- Test (7)
- Mina (0)
- Amoeba (4)
- Cobar (1)
- 序列化 (2)
- Python (5)
- PHP (1)
- Socket通信 (1)
- Network (3)
- Struts (2)
- Web前端 (10)
- Maven (6)
- SVN (15)
- Json (1)
- XMPP (2)
- Go (1)
- Other (4)
- 未整理 (5)
最新评论
-
u012374672:
[color=darkred][/color][flash=2 ...
Mongo的ORM框架的学习Morphia(annotations) -
b_l_east:
很有问题啊
利用redis的transaction功能,实现分布式下加锁
基本命名规范
包命名
包名按照域名的范围从大到小逐步列出,恰好和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,这些段落将在生成文档中以特定方式显示
参考文档
- Java命名规范
- http://java.chinaitlab.com/base/834496.html
- Java代码规范
- http://www.doc88.com/p-733474983375.html
- java应用命名规范
- http://home.51.com/renjanely/diary/item/10051465.html
- 【J2SE系列】Java命名规范
- http://my.oschina.net/iblike/blog/34100\
- 开发笔记:Java命名规范
- http://blog.donews.com/maverick/archive/2005/10/12/585459.aspx
发表评论
-
MyBatis-generator使用,为Example添加分页
2017-11-01 16:10 5021数据库为MySQL。1. 在Example类里,加入两个变 ... -
使用Spring MVC统一异常处理实战
2017-08-22 14:26 3681 描述 在J2EE项目的开 ... -
日志组件的关系梳理:如何正确使用它们
2017-08-07 14:25 761背景 由于现在开源框架日益丰富,好多开源框架使用的 ... -
Java中“引用”的几种类型
2017-07-18 17:09 639一. 概述: 强引用(S ... -
Spring和Mybatis整合时无法读取properties的处理方案
2016-11-29 11:39 1776config.properties配置文件信息 ... -
Protobuf使用
2016-07-12 11:49 2219ProtoBuf的官方下载包并不包含jar文件,需要用户自 ... -
jmeter读取外部配置文件
2016-06-06 10:30 0配置文件有两类: 一、路径相关配置文件,只需要了解清楚jm ... -
@SuppressWarnings抑制警告的关键字
2016-05-16 15:45 1986关键字 用途 all to suppress a ... -
Apache的DbUtils框架学习
2016-04-01 19:47 798一、commons-dbutils简介 co ... -
Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
2016-03-30 20:13 731互联网的发展,网站 ... -
Java GC 详解
2016-03-30 19:54 7611、基本回收算法 (1) 引用计数(Reference ... -
JVM(Java虚拟机)优化大全和案例实战
2016-03-30 19:53 526堆内存设置 原理 JVM堆内存分为2块:Perman ... -
Spring事务的传播行为和隔离级别
2016-02-20 22:32 941http://blog.csdn.net/paincupi ... -
java中什么是bridge method(桥接方法)
2016-01-31 19:19 607在看spring-mvc的源码的时候,看到在解析handle ... -
@SuppressWarnings的使用、作用、用法
2016-01-06 16:45 1563在java编译过程中会出现很多警告,有很多是安全的,但是每次 ... -
fastjson遇到的无限递归的问题
2015-09-13 18:09 4026fastjson是用反射的,如果在实体类里 ... -
当spring 容器初始化完成后执行某个方法
2015-08-11 14:56 2293在做web项目开发中,尤其是企业级应用开发的时候,往往会在工 ... -
javac命令初窥
2015-07-30 14:05 2014注:以下红色标记的参数在下文中有所讲解。 用法: ja ... -
JDK各版本地址下载
2015-07-17 13:09 13831. 总地址:http://www.oracle.com/ ... -
jdk1.5-1.9新特性
2015-07-17 13:02 18561.51.自动装箱与拆箱:2.枚举(常用来设计单例模式)3. ...
相关推荐
Java编程风格是编写Java代码时遵循的一套规则和约定,它影响着代码的可读性、可维护性和团队协作效率。以下是一些关于如何修改和优化Java编程风格的关键知识点: 1. **命名规范**: - 类名:使用驼峰式命名,所有...
命名规范 良好的命名习惯可以大大提高代码的可读性: - **变量命名**:采用有意义的名字,如`firstName`代替`fName`。 - **类和接口命名**:首字母大写,如`Customer`。 - **常量命名**:全大写单词间用下划线...
根据提供的文件信息,本文将对《JAVA编程规范【整理】.doc》中的关键知识点进行详细的阐述与解析。本文档主要围绕Java编程规范的核心内容展开,包括排版标准、规则、建议、注释标准以及命名标准等方面,旨在为Java...
综上所述,Java编程规范涉及到了编码风格、源文件组织、格式化、命名规则以及文档注释等多个方面,这不仅有助于提升代码质量,而且能够促进团队协作,确保代码的长期可维护性。遵循这些规范,对于任何参与Java开发...
规约涵盖了命名规范、编码规范、注释规范等多个方面,旨在形成一套通用的编程风格指南。 ### 命名规范 1. **最基本要求**: - 不允许以下划线或美元符号开始或结束命名。 - 禁止使用拼音或拼音与英文混合的命名...
本规范涵盖了命名规则、注释、类与对象设计、接口与继承、异常处理、并发编程等多个方面,是每个Java开发者应当遵循的最佳实践。 1. **命名规则**: - 类名使用大驼峰命名法,如`MyClassName`。 - 接口名也使用大...
8. 编程风格:良好的编程风格包括清晰的命名规范、适当的注释、遵循一定的代码格式(如缩进、空格)和模块化的代码组织。每个开发人员应遵循团队约定的编码规范。 9. 栈与堆:栈主要存储局部变量和方法调用信息,...
### Java编程规范详解 #### 一、概述 本文档基于一份由周甫老师编写的《JAVA编码标准及规范手册》进行整理与总结。该手册详细介绍了编写高质量Java代码的规范和标准,对于初学者和有一定经验的开发者都非常有用。...
在Java编程中,代码的可读性是一项极其重要的考量因素。良好的代码可读性不仅能够帮助其他开发人员快速理解代码逻辑,还能降低维护成本,提高团队协作效率。以下是根据给定文件内容整理的Java代码规范以及提高代码...
标题所体现的知识点为Java语言编码规范,这是一套规则和约定,用于统一Java开发者的编程风格和代码组织方式。在描述中提到此规范是由SUN公司的发布编码标准翻译整理而成,这意味着规范的权威性和行业内的广泛认可。...
1. **命名规范**: - **项目命名**:项目名应全部为小写单词,具有代表性,能清晰表明项目内容。例如,`shopping-platform`。 - **包命名**:遵循`com|org|edu|net`等顶级域名,然后是公司名、组织名、学校名或...
这是一份实用的源码整理,对于想要深入学习Java编程,特别是对Java在实际项目中的运用感兴趣的开发者来说,是非常有价值的参考资料。 1. **短信服务接口**:在Java项目中,通常会定义一个短信服务接口,这个接口...
【JAVA开发规范整理版】 Java开发规范是一套指导开发者遵循的标准和约定,旨在提升代码质量、可读性、可维护性以及团队协作效率。规范涵盖了代码组织、风格、注释等多个方面,确保代码的可靠性和一致性。 **1. ...
Java 规范详解 《阿里巴巴 Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,系统化地整理成册,回馈给广大开发者。该手册以 Java 开发者为中心视角,...
`google-java-format` 是一款强大的工具,专门用于自动格式化Java源代码,使其遵循Google制定的Java编程风格指南,即`Google Java Style Guide`。这款工具旨在提高代码的可读性和一致性,减少因代码格式问题引发的...
在Java编程中,编码规范的实施主要体现在以下几个方面: 1. 包命名规则:包名的前缀通常是全小写的ASCII字母,并且是一个顶级域名,如com、edu、gov等。后续部分则根据机构内部的命名规范区分,可能包含部门、项目...
**知识点9:** Java命名规范建议:类名与接口名首字母大写,方法名首字母小写,常量全大写并用下划线分隔,变量首字母小写后续单词首字母大写,包名全小写。 **知识点10:** Java不允许布尔类型与数字类型相互转换...