Java编程规范(DOC)

Java编程规范(DOC)
Java编程规范(DOC)

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(删除)、在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构来确定,并且异常和错误码不应该混合使用,推荐使用异常。

说明:

一个系统或者模块应该统一规划异常类型和返回码的含义。

但是不能用异常来做一般流程处理的方式,不要过多地使用异常,异常的处理效率比条件分支低,而且异常的跳转流程难以预测。

注意:JDK1.5 程序内部的错误码可以使用枚举来表示。

5、注意运算符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级。

说明:防止阅读程序时产生误解,防止因默认的优先级与设计思想不符而导致程序出错。

示例:

下列语句中的表达式

word = (high << 8) | low (1)

if((a | b) && (a & c)) (2)

if((a | b) < (c & d)) (3)

如果书写为

high << 8| low

a |

b && a & c

a |

b <

c & d

(1)(2)虽然不会出错,但语句不易理解;(3)造成了判断条件出错。

6、避免使用不易理解的数字,用有意义的标识来替代。涉及物理状态或者含有物理意义的常量,不应直接使用数字,必须用有意义的静态变量或者枚举来代替。

示例:如下的程序可读性差。

if(state == 0)

{

state = 1;

... // program code

}

应改为如下形式:

private final static int TRUNK_IDLE = 0;

private final static int TRUNK_BUSY = 1;

private final static int TRUNK_UNKNOWN = -1;

if(state == TRUNK_IDLE)

{

state = TRUNK_BUSY;

... // program code

}

注意:JDK 1.5 下建议使用枚举来表示。

7(删除)、数组声明的时候使用 int[] index ,而不要使用 int index[]

说明:使用int index[] 格式使程序的可读性较差,int [] index 表示声明了一个int数组(int [])叫做index

示例:

如下程序可读性差:

public int getIndex()[]

{

....

}

如下程序可读性好:

public int[] getIndex()

{

....

}

8、不要使用 System.out 与 System.err 进行控制台打印,应该使用工具类(如:日志工具)进行统一记录或者打印。

说明:代码发布的时候可以统一关闭控制台打印,代码调试的时候又可以打开控制台打印,方便调试。

9、集合必须指定模板类型

说明:方便程序阅读,除去强制转换代码

示例:

Map map = new HashMap();

10、一个文件不要定义两个类(并非指内部类)。

说明:方便程序的阅读与代码的维护

注意:一个文件定义两个类,在play框架的生产模式会报错,因为play重写了class的加载方法,生产模式启动时进行预编译,这时会保存;但是在开发模式则不会报错,因为开发模式不会进行预编写,而是在运行时编译,jvm运行时编译则不会出错。

11(抽取成一个日志公用类)、对Debug,Info级别日志输出前必须对当前的调试等级先进行判断。

说明:日志一般都会有不少字符串的处理,如果不是Debug级别就没有必要进行处理

示例:

if(logger.debugEnable())

{

logger.debug(“request : ” + request.getMethod());

}

12、不要使用循环将集合转为数组,可以使用集合的toArray()方法。

说明:更好的性能,代码更加简洁

(1、数据量多的情况下,ArrayList跟LinkedList是否应该区分循环访问方式,即(for跟foreach)的区别;

(2、当需要使用Map进行拼接数据的时候,HashMap跟LinkedHashMap使用循环打印出来的数据顺序跟添加的顺序是不一样的,是否也需要区分开;

示例:

ArrayList list = new ArrayList();

list.add....

String [] array = new String[list.size()];

list.toArray(array);

13、JDK 1.4中大量字符串的“相加”操作应该使用StringBuffer。JDK 1.5以上版本大量字符串“相加等于”操作如果不涉及线程安全应该使用StringBuilder,如果有线程安全的要求应该使用StringBuffer

说明:大量的String相加等于处理性能消耗较多。“大量”一般指5次“+=”以上或者在循环中进行字符串+=操作。StringBuilder的性能优于StringBuffer,但是是非线程安全的。

示例:

不推荐:

String str = “”;

str += ”a”;

str += ”b”;

str += ”c”;

str += ”d”;

str += ”e”;

推荐:

StringBuilder sb = new StringBuilder();

sb.append(“aa”);

sb.append(“bb”);

sb.append(“cc”);

JDK 1.4使用StringBuffer。JDK1.5如果不涉及线程安全用StringBuilder替代以上示例。

14、对类中日志工具对象logger应声明为static.

说明:防止重复new 出logger对象(logger指各种日志工具类,可以是log4j,jdk logger,内部API等,尽管一些logger对LogFactory工厂有一些优化,但是我们也必须防止代码没有必要的运行)。

15、不能用“==”比较两个字符串(Long对象等)内容相等,能用基本类型就是基本类型

说明:两个字符串在比较内容是否相等的时候,如果使用“==”,当两个字符串不是指向内存中同一地址,那么即使这两个字符串内容一样,但是用“==”比较出来的结果也是false。所以两个字符串在比较内容是否相等的时候一定要使用“equals”方法。

示例:

public class Test {

public static void main(String[] args)

{

String a = new String("a");

String a2 = "a";

if(a == a2)

{

System.out.println("a == a2 return true.");

}

else

{

System.out.println("a == a2 return false.");

}

if(a.equals(a2))

{

System.out.println("a.equals(a2) return true.");

}

else

{

System.out.println("a.equals(a2) return false.");

}

}

}

最终输出的结果为:

a == a2 return false.

a.equals(a2) return true.

16、对list做foreach循环时,循环代码中不能修改list的结构

说明:在jdk1.5版以上的foreach循环写法中,不能在循环代码中对正在循环的list的结构进行修改,即对list做add、remove等操作,如果做了这些操作,必须立即退出循环,否则会抛出异常。

17、避免空指针异常,增加静态代码检查

说明:空指针异常是编码过程中最常见的异常,在使用一个对象的时候,如果对象可能为空,并且使用次对象可能会造成空指针异常,那么需要先判断对象是否为空,再使用这个对象。

18、避免下标越界,增加静态代码检查

说明:访问数组、List等容器内的元素时,必须首先检查下标是否越界,杜绝下标越界异常的发生。

19、将字符串转数字时没有捕获NumberFormatException异常,写工具类

说明:调用Java方法将字符串转换为数字时,如果字符串的格式非法,会抛出运行时异常NumberFormatException。

示例:

错误例子:

public Integer getInteger1(String number)

{

// 如果number格式非法,会抛出NumberFormatException

return Integer.valueOf(number);

}

正确的处理方法如下:

public Integer getInteger2(String number)

{

try

{

return Integer.valueOf(number);

}

catch(NumberFormatException e)

{

...

//记录日志异常信息

return null;

}

}

注意:在捕获异常后一定要记录日志。

20、循环体编码时不考虑性能,循环体中包含不需要的重复逻辑。(考虑循环体的性能)

说明:循环体是软件中最容易造成性能问题的地方,所以在进行循环体编码时务必考虑性能问题。在循环体内重复使用且不会变化的资源(如变量、文件对象、数据库连接等),应该在循环体开始前构造并初始化,避免在循环体内重复和构造初始化造成CPU资源的浪费。除非业务场景需要,避免在循环体内构造try...catch块,因为每次进入、退出try...catch块都会消耗一定的CPU资源,将try...catch块放在循环体之外可以节省大量的执行时间。

21、equals操作时没有将常量放在equals操作符的左边,增加静态代码检查

说明:字符串变量与常量比较时,先写常量,这样可以避免空指针异常。

示例:

public static final String SP_NAME = "SPNAME";

public void equalsConst()

{

String temp = null;

//错误;//在temp为null的情况下,此时会导致意想不到的异常抛出,如果将常量放在左边,就不会有这种问题。

if(temp.equals(SP_NAME))

{

temp = SP_NAME + "AA";

}

}

2命名规范

2.1类名、变量名(非final)、方法名

2.2 驼峰式命名

2.3 不能使用没有任何含义的英文字母进行命名

2.4不能使用拼音进行命名,统一使用准确的英文进行命名

不采用简写方式命名(除公认的常用简写)

2.5包名

以cn.pp.ppbase.项目名.xxx 命名,都采用小写,连续的单词只是简单地连接起来,不使用下划线。

2.6接口与类的命名

接口不要以 I 开头。如:IUserService,而直接采用具体的命名方式如UserService

2.7抽象类命名

抽象类命名使用:Abstract+名词的方式进行命名,如:AbstractMessage。

2.8实现类命名

对于只有一个实现类的情况,通常先不采用接口方式,直接采用实现类即可,如果有多个实现类,则采用名称+抽象名称,如UserMessage、AdminMessage。

注意:项目中的Service层,目前大多只有一个实现,所以不采用接口方式,直接使用具体类即可。

2.9工具类命名

统一使用:名词+Util进行命名,如:UrlUtil、StringUtil……

2.10变量命名

所有变量(描述状态的除外)统一以准确的名词性英文命名,名词性英文语法如下:

普通名词,如:user、clubMember、order等

组合名词,即名词+名词,如:clubMemberServiceOrder,paymentResult等

带修饰语(定语)名词,如:checkingResult,messageSendingTask(主动,用ing),closedOrder(已经关闭的订单,用ed)

描述状态的变量统一以准确的形容词性英文命名,形容词性英文语法如下:

普通形容词,如:active,inactive,valid,invalid等

动词转形容词,表示状态,如:close > closed,stop > stopped等

动词转形容词,标示能动,如:delete > deletable,use > useful等

对于反映状态的变量,不要在命名前面加“is”,因为自动生成的get方法,对于boolean值,方面名自动会变为is***

常量用全大写,单词之间用“_”分割,如:

public static final String QUERY CLUBMEMBER_HQL=”…”;

对于成员变量,其名称可省略所属类的名称,如:

public class User {

private String clubMemberName; //NOT GOOD

private String name; //GOOD

}

2.115、方法命名

方法名命名规则:

动词:init,validate,pay等

动词+介词+(宾语):compareT o,getById等

动宾短语(表示动作):createUser,publishPrivilege

谓表短语(表示状态):isClosed,isUserExisted,canUserBeDeleted等

单复数的使用,对于一些动作需要操作多个对象,方法名要通过名词复数反映出来,例如:

deleteOrders(删除订单,可能多个)

如果一个方法设计两个动作或对象,用“And”连接,如:

createProductAndTag,但一般情况下,不推荐一个方法做多于一件事情

如非必要,或常见的简写,尽量不要使用简写,因为简写很难阅读,容易误解,宁愿方法名稍微长一些,也要让方法名用正确的短语来表述,由于一个方法一般不建议做多于一件事情,所以方法名一般不会太长。

一些Java业界约定俗成的方法命名:

与…进行比较:compareT o

获取单例对象:getInstance

是否相等:equals

初始化:init

2.12系统的命名约定

2.12.1接口、类的命名约定

类名示例

Struts Action类***Action OrderAction

Struts Interceptor类***Interceptor AuthenticationInterceptor

系统监控器类***Monitor MemcachedMonitor

逻辑层类***Service UserService

VO/DTO(视图对象)实体名+VO UserVO

Entity(领域对象)实体名 User

DAO层***Dao UserDao

2.12.2常规方法的命名约定

方法名示例

创建create*** create createUser

更新update*** update updateUser

删除delete*** delete deleteOrder

批量删除delete***(复数) deleteOrders

获取单个对象get*** get getUser

获取单个对象根据某个参数getBy*** getMarketingActivityByCode

批量获取多个对象batchGet***

列表(不分页)list***(复数) listOrders

列表(分页)paged***(复数) pagedOrders

激活/启用activate*** activeMarketingActivity

停用inactivate/stop*** inactivateMarketingActivity

如果类名已经包含一些名称,方法和操作可以不写响应的名称,例如UserDao 的方法get 而不用getUser

JAVA开发规范文档

Java 开发规范文档 一:目的 使本组织能以标准的,规范的方式设计和编码。通过建立编码规范,以使每个开发人员养成良好的编码风格和习惯;并以此形成开发小组编码约定,提高程序的可靠性,可读性,可修改性,可维护性和一致性等,增进团队间的交流,并保证软件产品的质量。 二:代码组织与风格 1:长度:为便于阅读和理解,单个函数的有效代码长度当尽量在100行以内(不包括注释行),当功能模块过大时往往采用使用子函数将相应的功能抽取出来,这也有利于提高代码的重用度。 2:单个类不宜过大,当出现此类过大时当将相应功能的代码重构到其他类中,通过组合等方式来调用,建议单个类的长度包括注释行不超过1500行。尽量避免使用大类和长方法。3:间隔:类,方法及功能块间等应以空行相隔,以增加可读性,但不得有无规则的大片空行。操作符两端应当各空一个字符以增加可读性。 三:注释 1:注释应该增加代码的清晰度。代码注释的目的时要使代码更易于被其他开发人员等理解。2:保持注释的简洁。 3:注释信息应该包括代码的功能。 4:除变量定义等较短语句的注释使用行尾注释外,其他注释当避免使用行尾注释。 5:JavaDoc规范 对类,方法,变量等注释需要符合javadoc规范,对每个类,方法都应详细说明其功能条件,参数等。类注释中应当包含版本和作者信息。 1)类,接口注释在类,接口定义之前当对其进行注释,包括类,接口的目的,作用,功能,继承于何种父类,实现的接口,实现的算法,使用方法,示例程序等。 2)方法注释以明确该方法功能,作者,各参数含义以及返回值等。

3)其他注释应对重要的变量及不易理解的分支条件表达式加以注释,以说明其含义等。四命名规范 1:对变量,类,接口及包的命名应该使用英文。严禁使用汉语拼音及不相关单词命名。更不可以使用汉字来进行命名。采用大小写混合,提高名字的可读性。一般应该采用小写字母,但时类和接口的名称的首字母,以及任何中间单词的首字母应该大写。包名全部小写。 2:尽量少用缩写,但如果一定要用,当使用公共缩写和习惯缩写等,如implement可缩写为impl,manager可缩写成mgr等。 3:包名一般以项目或模块名命名,少用缩写和长名,一律小写。 包名按照如下规定组成[基本包].[项目名].[模块名].[子模块名].…. 如:org.skyinn.skyhome.dao.hibernate。 不得将类直接定义在基本包下,所有项目中的类,接口等都当定义在各自的项目和模块包中。 4:类,接口所有单词首字母大写,最好能够见名知意。一般采用名词。接口可带I前缀。 或able,dao后缀。 5:字段常量采用完整的英文大写单词,单词之间用下划线连接,如DEFAULT_V ALUE. 6:变量和参数对不易识别出该变量类型的变量应使用类型缩写作其前缀,如字符串使用strXXX,boolean使用isXXX,hasXXX等等。除第一个单词外其余单词的首字母大写。7:集合采用复数名称来表示队列中存放的对象类型,名词采用完整的英文描述。 例如:Vector vProducts= new Vector(); Array aryUsers= new Array(); 8:方法方法的名称应采用完整的英文描述,大小写混合使用:所有中间单词的第一个字母大写。方法名称的第一个单词常常采用一个强烈动作色彩的动词。取值类使用get前缀,设置类使用set前缀。例如getName(),setSarry()。 9:异常类名由表示该异常类型的单词和Exception组成,如ActionException。异常实例一般使用e,ex等。 10:数组的命名 数组应该总是用下面的方式来命名:byte[] buffer; 而不是:byte buffer[]; 五:类与接口 1:基本原则:一个类只做一件事情。另一个原则时根据每个类的职责进行划分,比如用User 来存放用户信息,而用UserDAO来对用户信息进行数据访问操作,用UserServer对用户信息的业务操作等等。多个类中使用相同方法时将其方法提到一个接口中或使用抽象类,尽量提高重用度。不希望被实例化的类的缺省构造方法声明为private。 2:一般而言,接口定义行为,而抽象类定义属性和共有行为,注意2者的取舍,在设计中可由接口定义公用的行为,由一个抽象类来实现其部分或全部方法,以给子类提供统一的行为为定义。 六:方法 一个方法只完成一项功能。方法参数类型和参数返回值尽量接口化,以屏蔽具体的实现细节,提高系统的可扩展性,例如:public void addUser(List userList){} public List listAllUsers(){} 七:Web 命名规范 一:jsp页面命名 对于某个功能块的增删改查页面定义,最好使用

Javadoc自动生成帮助文档

JAVADOC:自动生成你的程序开发文档 当初学习编程序的时候,就从来没有想过要给自己写的那几个程序编写一份完整的文档,所有的注释都仅仅是为了自己当时能够想起这段代码到底是干什么的,没有人想过这些代码的升级、共享问题。但是,开始做商业软件之后,一切都变了,尤其是大型的团队开发项目中。 大家也许注意到了,java的API文档总是紧紧跟随着JSDK的版本的提高而保持着最新的状态。试想一下,手工维护这么复杂的文档可能吗?当然不可能,这一切都是javadoc这个小程序的功劳(当然也有java类库作者们做程序注释的一份功劳)。API文档就是用它根据最新的源代码自动生成的,一切都是这么容易——只需要你把本来就要写的注释写得更规范一些,再稍微详细一些。然而,大家似乎好像根本就没有意识到它的存在,很少有人会用它来为自己的程序生成文档。不知道,你现在是否对它有了兴趣?好吧,下面我们就开始这个令人轻松的自动文档生成之旅。 【如何插入注释】 javadoc为你生成代码不是凭空来的,也不是它会自动分析你的代码——每个人都有自己的代码风格,如果要进行分析翻译恐怕还是机器码更容易生成百倍。它的分析机制依赖于你按照规范为你的代码添加应有而足够的注释。只有你老老实实写注释,才有可能把以前需要做双份的工作一次做了。 Javadoc工具可以从下列对象中提取出信息: · 包。 · 公共类。 · 公共接口。 · 公共或者受保护的方法。 · 公共或者受保护的变量/常数。 针对每一种特性,你都应该提供一条注释。每一条注释都要以/**打头,以*/结尾。在每条/** …… */文档注释可包括任意格式的文字。它的第一个句子应该是一个总结性的语句,javadoc会自动把它提出来制作总结页。当然,这里你完全可以使用一些HTML的记号,例如表示斜体;...表示等宽的“打印机”字体;表示粗体;甚至用包括一副图象等等。(但是不要使用类似于的标题格式的标记,或者水平分隔线等,它们会和文档自己的格式发生冲突)然后在后面接上一些特殊的“标记”。每个标记以@开头,例如@author或者 @param等等。</p><h2>华为Java语言编码规范标准</h2><p>Java语言编码规范 Prepared by 拟制Date 日期 yyyy-mm-dd Reviewed by 评审人Date 日期 yyyy-mm-dd Approved by 批准Date 日期 yyyy-mm-dd</p><p>Revision Record 修订记录</p><p>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)</p><p>1.范围 本规范规定了使用Java语言编程时排版、注释、命名、编码和JTEST的规则和建议。 本规范适用于使用Java语言编程的产品和项目。 2.规范性引用文件 下列文件中的条款通过本规范的引用而成为本规范的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本规范,然而,鼓励根据本规范达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本规范。 3.术语和定义 规则:编程时强制必须遵守的原则。 建议:编程时必须加以考虑的原则。 格式:对此规范格式的说明。 说明:对此规范或建议进行必要的解释。 示例:对此规范或建议从正、反两个方面给出例子。</p><h2>java编程规范+数据库命名规范</h2><p>Java编程规范 本编程规范建立在标准的Java编程规范的基础上,如和标准的Java编程规范有冲突,以本编程规范为准。 1.1 程序结构 包名 引入包/类名 类注释 类 常量//常量注释 构造器注释 构造器 构造器注释 构造器 方法注释 方法 方法注释 方法 1.2 命名规范 命名规范使得程序更易理解,可读性更强。并且能够提供函数和标识符的信息。 文件命名规范: java程序使用如下的文件名后缀: 文件类型后缀 Java 源文件.java Java 字节码文件.class 对系统的文件命名方式有待于根据实际业务决定。 包命名规范: 包名应该唯一,它的前缀可以为任何小写的ASCII字符,包名按照公司内部的命名规范,这些规范指出了某种目录名,主要包括部门,项目,机器,或者登录名。 命名规则为: app.系统名.模块名.xxx.xxx 包命名举例: app.oa.interceptor.xxx app.oa.sys.xxx 类命名规范: 类名应该是名词,并且是大小写混合的。首字母要大写。尽量保证类名简单并且描述性强。避免使用只取单词首字母的简写或者单词的缩写形式,除非缩写形式比单词的完整形式更常用(例如:URL或者HTML)。文件名必须和public的类名保持一致,注意大小写(JBuilder 等一些编译器可以忽略大小写,要特别注意)。如是实现类命名后缀+Impl。 类命名举例: classLoginAction; classUserServiceImpl; 接口命名规范:</p><p>接口命名方式与类命名方式相同。 接口命名举例: interfaceIUserService; interfaceSysYhjsDAO; 方法命名规范; 方法名应该为动词,并且是大小写混合的。首字母要小写,方法名的第 二个单词的第一个字母大写。 方法命名举例: String getNoticeNo(); Collection findByCondition(String); 变量命名规范 变量,以及所有的类实例应为首字母小写的大小写混合形式。变量名的第二个单词 的首字母大写。变量名的首字母不能为下划线或者$符。 变量名应该尽可能的短小,但要有意义。变量名应该便于记忆,也就是说变量名应 该尽可能的做到见名知意。除了暂时使用的变量外(一般用于循环变量),应该避免使 用只有一个字母的变量名。对于临时变量一般说来:i,j,k,m,n代表整型变量。c,d,e代表字符型变量。 变量命名举例: String dataType; String name; inti; char c; 常量命名规范: 声明为类常量的变量或者ANSI常量应该全部为大写字母,并且每个单词间用下划 线“_”隔开。为了便于调试,应避免使用ANSI常量。 常量命名举例: static final int MIN_WIDTH = 4; 1.3 注释规范 Java 提供了两种类型的注释:程序注释和文档注释。程序注释是由分隔符/*…*/,和// 隔开的部分,这些注释和C++ 中的注释一样。文档注释(即“doc 注释”)是Java 独有的。由分隔符/**…*/隔开。使用javadoc工具能够将文档注释抽取出来形成HTML 文件。程序注释主要是对程序的某部分具体实现方式的注释。文档注释是对程序的描述性注释,主要是提供给不需要了解程序具体实现的开发者使用。注释应该是代码的概括性描述,提供不易直接从代码中得到的信息,并且只包含对阅读和理解程序有用的信息。例如注释中包含相应的包如何编译或者在哪个目录下,而不应该包括这个包驻留在哪儿的信息。注释中可以描述一些精妙的算法和一些不易理解的设计思想,但应该避免那些在程序代码中很清楚的表达出来的信息。尽可能的避免过时的信息。错误的注释比没有注释更有害。经常性的注释有时也反映出代码质量的低下。 …程序注释: 程序注释有四种格式:块注释格式,单行注释,跟随注释,行尾注释 ?块注释格式 块注释主要用于描述:文件、方法、数据结构和算法。一般在文件或者方法定义的 之前使用。也可以用在方法定义里面,如果块注释放在函数或者方法定义里,它必须与它所描述的代码具有相同的缩进形式。</p><h2>java对安全性的支持.doc</h2><p>java对安全性的支持 序言: 在完成网络安全的算法库是,我选择了java语言来开发。由于java 没有指针,使我对数据流的控制感到很是头痛, 于是对java 编程很有意见, 然而在我使用大数类(BigInteger)时,无意中发现java对RSA封装的很好,再仔细看相关的资料,觉得里面有不少东西,于是决定以此为本学期的论文题目,希望通过这次学习能够从实用的角度更加深入的了解网络安全的一些概念。本着学以至用的观点,我自己设计了一个系统,虽然比较幼稚,但我尽量用上们所学的算法和应用流程,相信着对我今后对网络安全的理解会很有帮助的. java 中安全性方面的概述 系统结构 以JDK 1.2 为例.。首先无论代码来自本地或是远端,都要对应一个安全策略(security policy)----- 它定义了不同签名者、不同来源的一套权限控制策略(permissions), 在权限控制中说明了对资源(如文件、目录、端口。。)的访问的权限。 运行系统将代码组织到单独的域(domains) 中---- 每个域封装了一组具有相同控制权限的类的实例。域相当于SandBox (沙箱),Applet 可以在管理员的授权下运行于一个受到限制的环境中,而应用程序就不用受到这些限制,当然他也受到安全策略的控制。 JDK 1.2 Security Model:</p><p>密码使用的体系结构 JDK1.2 不但保留了以前的签名算法、消息摘要算法、密钥生成算法, 还增加了密钥管理、算法参数管理、算法参数生成、支持不同密钥转化的代理,认证中心、随机数生成算法。JDK1.2 中还增加了一些加密算法的扩展包(Java Cryptography Extension 即JCE),提供了全面的平台无关的API 函数,实现了数字签名、md5、SHA-1、基于X.509 的认证代理。。。;下图显示了JCE 的模型: 关于Appelt 权限控制的简介: Java平台通过安全管理器(security manager)来防止系统遭到攻击。现在的JDK 系统是通过启动安全管理器来进行资源访问控制的。现在的浏览器中都装有安全管理器,Applet 的一举一动都受到管理器的控制下,与JDK 1.2 平台兼容的系统需要通过policy 文件来授权。 在policy 文件中定义了来自某地(URL)的某人签名的代码的访问权限控制,在JDK 1.2 中,可以通过工具policytool 来生成、编辑policy 文件.。 关于应用程序权限控制的简介: 如果没有安全管理器控制的话,应用程序是完全自由的(此时安全管理器是不会自动启动的)。通过用命令行-Djava.security.manager 来运行程序,就和下载的Applet 一样受到了安全管理器的控制。Windows:的缺省的policy 控制文件是</p><h2>总结的Javadoc转换chm帮助文档的四种方法</h2><p>https://www.360docs.net/doc/431997217.html,/blog/1051688 李顺利 [2010年1月6日] 关键词 Javadoc chm 转换 jd2chm javadoc2chm javadoc2help Javadoc2chm 中文乱码李顺利 前言 朋友,当您在一个项目完成后,是不是需要把你的源码打包并且把注释打成Javadoc交给客户,Eclipse或者MyEclipse自动打成的Javadoc文档都是基于网页格式的,打开是很方便,不过真的用的时候,搜索每个方法或者什么的就很麻烦了,而chm帮助文档格式不但文件小,查阅都很方便,所以网上就出现了很多把Javadoc转换为chm格式的帮助文档的软件/工具或者方法。 自己最近需要真的需要这个方面的需求,查阅了网上很多方法,发现很多都是写的很不详细,对于我这种刚接触的很是不清楚,经过我的学习和理解,现提供从网上总结的Javadoc转换chm帮助文档的四种方法,详细提供各个转换的步骤供大家学习,并且提供英文版本和中文版本Javadoc转换过程中出现的问题,特别是中文的时候出现的乱码现象,也提供一些解决方案。 预处理 转换之前需要了解的是chm是微软公司发布的一种帮助文档格式,所有,要使用下面的方法转换,请先安装HTML Help Workshop(后面简称为HHW)(实际上后面的一些处理有些都是在上面操作的) https://www.360docs.net/doc/431997217.html,/en-us/library/ms669985.aspx,下载完毕后就是安装了,很简单。 还有一个很重要的问题,就是如何把项目打成Javadoc,这有人应该会说,很简单啊,就是使用Eclipse或者Myeclipse的Export功能,是的,这是可以,但是有些小的方面还是需要我们强烈注意的</p><h2>javadoc注释规范</h2><p>javadoc做注释 一. Java 文档 // 注释一行 /* ...... */ 注释若干行 /** ...... */ 注释若干行,并写入javadoc 文档 通常这种注释的多行写法如下: /** * ......... * ......... */ javadoc -d 文档存放目录-author -version 源文件名.java 这条命令编译一个名为“源文件名.java”的java 源文件,并将生成的文档存放在“文档存放目录”指定的目录下,生成的文档中index.html 就是文档的首页。-author 和-version 两个选项可以省略。 二. 文档注释的格式 1. 文档和文档注释的格式化 生成的文档是HTML 格式,而这些HTML 格式的标识符并不是javadoc 加的,而是我们在写注释的时候写上去的。 比如,需要换行时,不是敲入一个回车符,而是写入<br>,如果要分段,就应该在段前写入。 文档注释的正文并不是直接复制到输出文件(文档的HTML 文件),而是读取每一行后,删掉前导的* 号及* 号以前的空格,再输入到文档的。如 /** * This is first line. <br> ***** This is second line. <br> This is third line. */ 2. 文档注释的三部分 先举例如下 /** * show 方法的简述. * show 方法的详细说明第一行<br> * show 方法的详细说明第二行</p><p>* @param b true 表示显示,false 表示隐藏 * @return 没有返回值 */ public void show(boolean b) { frame.show(b); } 第一部分是简述。文档中,对于属性和方法都是先有一个列表,然后才在后面一个一个的详细的说明 简述部分写在一段文档注释的最前面,第一个点号(.) 之前(包括点号)。换句话说,就是用第一个点号分隔文档注释,之前是简述,之后是第二部分和第三部分。 第二部分是详细说明部分。该部分对属性或者方法进行详细的说明,在格式上没有什么特殊的要求,可以包含若干个点号。 * show 方法的简述. * show 方法的详细说明第一行<br> * show 方法的详细说明第二行 简述也在其中。这一点要记住了 第三部分是特殊说明部分。这部分包括版本说明、参数说明、返回值说明等。 * @param b true 表示显示,false 表示隐藏 * @return 没有返回值 三. 使用javadoc 标记 javadoc 标记由“@”及其后所跟的标记类型和专用注释引用组成 javadoc 标记有如下一些: @author 标明开发该类模块的作者 @version 标明该类模块的版本 @see 参考转向,也就是相关主题 @param 对方法中某参数的说明 @return 对方法返回值的说明 @exception 对方法可能抛出的异常进行说明 @author 作者名 @version 版本号 其中,@author 可以多次使用,以指明多个作者,生成的文档中每个作者之间使用逗号(,) 隔开。@version 也可以使用多次,只有第一次有效 使用@param、@return 和@exception 说明方法 这三个标记都是只用于方法的。@param 描述方法的参数,@return 描述方法的返回值,@exception 描述方法可能抛出的异常。它们的句法如下: @param 参数名参数说明 @return 返回值说明</p><h2>(完整word版)JAVA代码规范详细版</h2><p>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。</p><h2>达内学习心得体会javadoc</h2><p>达内学习心得体会java 篇一:达内Java学习心得之易犯错误 第1 部分语法 程序员们总是被层出不穷的复杂问题所困扰假如我们最基本的开放工具 ——设计和编写程序的语言本身就是复杂的那么这个语言自己也会成为这些复 杂问题的一部分而非它们的解决方案了 —— C. A. R. Hoare, The Emperor’s Old Clothes Java 语言从C++派生而来并借鉴了Objective C Eiffel Smalltalk Mesa 和Lisp 这些语言的一些特性当使用其他语言的程序员转用Java 来编程时他们很快就会发现Java 的一些特性和自己以前所熟悉的语言非常相似因此这些程序员通常会认为这些特性在Java 中和在以前所使用的语言中表现一致其实完全不是这样这些想法在C++程序员中尤其普遍这一部分重点强调了Java 语言上经常会绊倒新手的陷阱和语言行为 本部分包括以下 10 个单元 Item 1 什么时候被覆盖的方法并非真的被覆盖了本单元解释了调用子类的实例 方法和静态方法之间的微妙差别 Item 2 String.equals()方法与== 运算符的用法比较”</p><p>本单元解释了这两种方法比较字符串的不同之处并指出了常量池是如何混淆这两种用法的 第1 部分语法 2 t Item 3 Java 是强类型语言本单元解释了基本类型的转换和提升的规则这对从C++ 转到Java 的程序员尤为重要Item 4 那是构造函数吗本单元给出了一个经典的然而又非常简单的语言陷阱当 我们培训新的Java 学员时这个陷阱总是让学员们问出这样的问题编译器怎么会没发现它 Item 5 不能访问被覆盖的方法本单元又一次讨论了Java 语言中的方法调用读完以后你将完全理解这个知识点 Item 6 避免落入隐藏变量成员的陷阱本单元讨论了这一最常见的陷阱所有Java 语言的入门课程都应该提及这个问题并且和this 引用一起讨论 Item 7 提前引用这一较短的单元向我们演示了什么是提前引用以及如何去避免 它 Item 8 设计可继承的构造函数本单元是取自来之不易的实践经验对于每一个想开发可重用Java 类的程序员来</p><h2>Javadoc注释说明</h2><p>Javadoc注释说明 Java 文档 // 注释一行 /* ...... */ 注释若干行 /** ...... */ 注释若干行,并写入 javadoc 文档 通常这种注释的多行写法如下: /** * ......... * ......... */ javadoc -d 文档存放目录 -author -version 源文件名.java 这条命令编译一个名为"源文件名.java"的 java 源文件,并将生成的文档存放在"文档存放目录"指定的目录下,生成的文档中 index.html 就是文档的首页。 -author 和 -version 两个选项可以省略。 二. 文档注释的格式 1. 文档和文档注释的格式化 生成的文档是 HTML 格式,而这些 HTML 格式的标识符并不是 javadoc 加的,而是我们在写注释的时候写上去的。 比如,需要换行时,不是敲入一个回车符,而是写入 <br>,如果要分段,就应该在段前写入 。 文档注释的正文并不是直接复制到输出文件 (文档的 HTML 文件),而是读取每一行后,删掉前导的 * 号及 * 号以前的空格,再输入到文档的。如 /** * This is first line. <br> ***** This is second line. <br> This is third line. */ 2. 文档注释的三部分 先举例如下</p><p>/** * show 方法的简述. * show 方法的详细说明第一行<br> * show 方法的详细说明第二行 * @param b true 表示显示,false 表示隐藏 * @return 没有返回值 */ public void show(boolean b) { frame.show(b); } 第一部分是简述。文档中,对于属性和方法都是先有一个列表,然后才在后面一个一个的详细的说明 简述部分写在一段文档注释的最前面,第一个点号 (.) 之前 (包括点号)。换句话说,就是用第一个点号分隔文档注释,之前是简述,之后是第二部分和第三部分。 第二部分是详细说明部分。该部分对属性或者方法进行详细的说明,在格式上没有什么特殊的要求,可以包含若干个点号。 * show 方法的简述. * show 方法的详细说明第一行<br> * show 方法的详细说明第二行 简述也在其中。这一点要记住了 第三部分是特殊说明部分。这部分包括版本说明、参数说明、返回值说明等。* @param b true 表示显示,false 表示隐藏 * @return 没有返回值 三. 使用 javadoc 标记 javadoc 标记由"@"及其后所跟的标记类型和专用注释引用组成 javadoc 标记有如下一些: @author 标明开发该类模块的作者 @version 标明该类模块的版本 @see 参考转向,也就是相关主题 @param 对方法中某参数的说明 @return 对方法返回值的说明 @exception 对方法可能抛出的异常进行说明 @author 作者名 @version 版本号 其中,@author 可以多次使用,以指明多个作者,生成的文档中每个作者之间使用逗号 (,) 隔开。@version 也可以使用多次,只有第一次有效 使用 @param、@return 和 @exception 说明方法</p><h2>Java代码规范详细版</h2><p>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 拼音</p><h2>javadoc文档的生成</h2><p>1.javadoc文档的生成 首先看一下下载的jar包(插件)有没有ant文件夹,ant文件里有没有build.xml文件,build.xml文件里有没有target元素为javadoc的,如果有,那说明我们可以在控制台用ant javadoc命令生成javadoc文档(或者利用myeclipse的集成ant插件生成javadoc文档,效果是一样的) 控制台生成javadoc文档方法: 1)先从https://www.360docs.net/doc/431997217.html,/bindownload.cgi下载ant包(ant-current-bin.zip,版本不同,名字可能有所不同),解压到目录(如F:\apache-ant-1.8.2); 2)配置ANT_HOME、JAVA_HOME、CLASSPATH(这是因为ant要用到这三个变量,大小写可能无所谓最好还是大写吧) ANT_HOME=F:\apache-ant-1.8.2 JAVA_HOME=C:\Program Files\Java\jdk1.6.0_10 CLASSPATH=%ANT_HOME%/lib/ant.jar 注:在CLASSPATH中系统本身也有很多变量,注意把这个%ANT_HOME%/lib/ant.jar加在后面就可以了,不要覆盖了它本身已有的内容。当然,后面加个“;”。 3)这时,可以在控制台进入到要生成javadoc的文件夹了,利用ant javadoc命令生成文档了,具体如下: 如我把jcommon-1.0.16 放在F:盘下,则在cmd进入F:\jcommon-1.0.16\ant, 然后输入ant javadoc命令,就可以了。 myeclipse的集成ant插件生成javadoc文档方法: 1)应该先把解压的文件夹放到myeclipse的工作空间(如工作空间myeclipse) 2)打开myeclipse,进入myeclipse空间,新建java项目(就以要解压得到的文件夹名为项目名,以create project form existing source 的方式建,找到这个文件夹,选它作为项目即可) 3)window->show view->ant->点击那个带有+号的ant图标->选择项目中的build.xml->在ant 的项目中(jfreechart)选中javadoc->然后Run as -> Ant Build就可以了</p><h2>JAVAC 命令详解</h2><p>JAVAC 命令详解 结构 javac [ options ] [ sourcefiles ] [ @files ] 参数可按任意次序排列。 options 命令行选项。 sourcefiles 一个或多个要编译的源文件(例如MyClass.java)。 @files 一个或多个对源文件进行列表的文件。 说明 javac 有两种方法可将源代码文件名传递给javac: ?如果源文件数量少,在命令行上列出文件名即可。 ?如果源文件数量多,则将源文件名列在一个文件中,名称间用空格或回车行来进行分隔。然后在javac 命令行中使用该列表文件名,文件名前冠以@ 字符。 源代码文件名称必须含有.java后缀,类文件名称必须含有.class后缀,源文件和类文件都必须有识别该类的根名。例如,名为MyClass的类将写在名为MyClass.java的源文件中,并被编译为字节码类文件MyClass.class。 内部类定义产生附加的类文件。这些类文件的名称将内部类和外部类的名称结合在一起,例如MyClass$MyInnerClass.class。 应当将源文件安排在反映其包树结构的目录树中。例如,如果将所有的源文件放在/workspace 中,那么com.mysoft.mypack.MyClass的代码应该在 \workspace\com\mysoft\mypack\MyClass.java 中。</p><p>缺省情况下,编译器将每个类文件与其源文件放在同一目录中。可用-d 选项(请参阅后面的选项)指定其它目标目录。 工具读取用Java 编程语言编写的类和接口定义,并将它们编译成字节码类文件。 查找类型 当编译源文件时,编译器常常需要它还没有识别出的类型的有关信息。对于源文件中使用、扩展或实现的每个类或接口,编译器都需要其类型信息。这包括在源文件中没有明确提及、但通过继承提供信息的类和接口。 例如,当扩展java.applet.Applet时还要用到Applet的祖先类:java.awt.Panel、java.awt.Container、https://www.360docs.net/doc/431997217.html,ponent和java.awt.Object。 当编译器需要类型信息时,它将查找定义类型的源文件或类文件。编译器先在自举类及扩展类中查找,然后在用户类路径中查找。用户类路径通过两种途径来定义:通过设置CLASSPATH环境变量或使用-classpath命令行选项。(有关详细资料,请参阅设置类路径)。如果使用-sourcepath选项,则编译器在sourcepath指定的路径中查找源文件;否则,编译器将在用户类路径中查找类文件和源文件。可用-bootclasspath和-extdirs选项来指定不同的自举类或扩展类;参阅下面的联编选项。 成功的类型搜索可能生成类文件、源文件或两者兼有。以下是javac对各种情形所进行的处理: ?搜索结果只生成类文件而没有源文件:javac使用类文件。 ?搜索结果只生成源文件而没有类文件:javac编译源文件并使用由此生成的类文件。 ?搜索结果既生成源文件又生成类文件:确定类文件是否过时。若类文件已过时,则javac重新编译源文件并使用更新后的类文件。否则,javac直接使用类文件。 缺省情况下,只要类文件比源文件旧,javac就认为它已过时。(-Xdepend选 项指定相对来说较慢但却比较可靠的过程。) javac 注意:javac可以隐式编译一些没有在命令行中提及的源文件。用-verbose选项可跟踪自动编译。</p><h2>java注释规范总结大全</h2><p>在软件开发的过程中总是强调注释的规范,但是没有一个具体的标准进行说明,通常都是在代码编写规范中简单的描述几句,不能作为一个代码注释检查的标准和依据,做什么都要有一个依据吗:),现在我特整理了一个《Java的注释规范》,内容来自网络、书籍和自己的实际积累。 JA V A注释规范 版本/状态作者版本日期 1.0 ghc 2008-07-02 一、背景 1、当我们第一次接触某段代码,但又被要求在极短的时间内有效地分析这段代码,我们需要什么样的注释信息? 2、怎么样避免我们的注释冗长而且凌乱不堪呢? 3、在多人协同开发、维护的今天,我们需要怎么样的注释来保证高质、高交的进行开发和维护工作呢? 二、意义 程序中的注释是程序设计者与程序阅读者之间通信的重要手段。应用注释规范对于软件本身和软件开发人员而言尤为重要。并且在流行的敏捷开发思想中已经提出了将注释转为代码的概念。好的注释规范可以尽可能的减少一个软件的维护成本, 并且几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护。好的注释规范可以改善软件的可读性,可以让开发人员尽快而彻底地理解新的代码。好的注释规范可以最大限度的提高团队开发的合作效率。长期的规范性编码还可以让开发人员养成良好的编码习惯,甚至锻炼出更加严谨的思维能力。 三、注释的原则 1、注释形式统一 在整个应用程序中,使用具有一致的标点和结构的样式来构造注释。如果在其他项目组发现他们的注释规范与这份文档不同,按照他们的规范写代码,不要试图在既成的规范系统中引入新的规范。 2、注释的简洁 内容要简单、明了、含义准确,防止注释的多义性,错误的注释不但无益反而有害。 3、注释的一致性 在写代码之前或者边写代码边写注释,因为以后很可能没有时间来这样做。另外,如果有机会复查已编写的代码,在今天看来很明显的东西六周以后或许就不明显了。通常描述性注释先于代码创建,解释性注释在开发过程中创建,提示性注释在代码完成之后创建。修改代码的同时修改相应的注释,以保证代码与注释的同步。 4、注释的位置 保证注释与其描述的代码相邻,即注释的就近原则。对代码的注释应放在其上方相邻或右方的位置,不可放在下方。避免在代码行的末尾添加注释;行尾注释使代码更难阅读。不过在批注变量声明时,行尾注释是合适的;在这种情况下,将所有行尾注释要对齐。 5、注释的数量 注释必不可少,但也不应过多,在实际的代码规范中,要求注释占程序代码的比例达到20%左右。注释是对代码的“提示”,而不是文档,程序中的注释不可喧宾夺主,注释太多了会让人眼花缭乱,注释的花样要少。不要被动的为写注释而写注释。 6、删除无用注释</p><h2>java代码规范详细版</h2><p>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 骆驼法则</p><h2>java注释规范</h2><p>设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后展开Comments 节点就是所有需设置注释的元素啦。现就每一个元素逐一介绍: 文件(Files)注释标签: /** * @Project: ${project_name} * @Title: ${file_name} * @Package ${package_name} * @Description: ${todo} * @author jeffshaw jeff_chon@https://www.360docs.net/doc/431997217.html, * @date ${date} ${time} * @Copyright: ${year} https://www.360docs.net/doc/431997217.html, Inc. All rights reserved. * @version V1.0 */ 类(Types)注释标签(类的注释): /** * @ClassName: ${type_name} * @Description: ${todo} * @author jeffshaw jeff_chon@https://www.360docs.net/doc/431997217.html, * @date ${date} ${time} * * ${tags} */ 字段(Fields)注释标签: /** * @Fields ${field} : ${todo} */ 构造函数标签: /** * Title: * Description:</p><p>* ${tags} */ 方法(Constructor & Methods)标签: /** * @Title: ${enclosing_method} * @Description: ${todo} * @param ${tags} 设定文件 * @return ${return_type} 返回类型* @throws */ 覆盖方法(Overriding Methods)标签: /* (非 Javadoc) * Title: ${enclosing_method} * Description: * ${tags} * ${see_to_overridden} */ 代表方法(Delegate Methods)标签: /** * ${tags} * ${see_to_target} */ getter方法标签: /** * @return ${bare_field_name} */</p></div> <div class="rtopicdocs"> <div class="coltitle">相关主题</div> <div class="relatedtopic"> <div id="tabs-section" class="tabs"> <ul class="tab-head"> <li id="14218935"><a href="/topic/14218935/" target="_blank">javadoc</a></li> <li id="14218935"><a href="/topic/14218935/" target="_blank">javadoc</a></li> <li id="16147055"><a href="/topic/16147055/" target="_blank">javadoc命令</a></li> <li id="16147055"><a href="/topic/16147055/" target="_blank">javadoc命令</a></li> <li id="13700467"><a href="/topic/13700467/" target="_blank">javadoc注释规范</a></li> <li id="13700467"><a href="/topic/13700467/" target="_blank">javadoc注释规范</a></li> </ul> </div> </div> </div> </div> <div id="rightcol" class="viewcol"> <div class="coltitle">相关文档</div> <ul class="lista"> <li><a href="/doc/0810050911.html" target="_blank">JAVA开发规范文档</a></li> <li><a href="/doc/1618616933.html" target="_blank">javadoc注释规范</a></li> <li><a href="/doc/4210838458.html" target="_blank">设置java注释模板</a></li> <li><a href="/doc/6216274459.html" target="_blank">maven工程生成javadoc</a></li> <li><a href="/doc/9c2007156.html" target="_blank">java注释范例</a></li> <li><a href="/doc/9510884814.html" target="_blank">javadoc用法</a></li> <li><a href="/doc/b315975253.html" target="_blank">javadoc转chm</a></li> <li><a href="/doc/d49318955.html" target="_blank">java代码规范DOC</a></li> <li><a href="/doc/f211274517.html" target="_blank">Java注释规范</a></li> <li><a href="/doc/0f643223.html" target="_blank">Javadoc自动生成帮助文档</a></li> <li><a href="/doc/1114798216.html" target="_blank">总结的Javadoc转换chm帮助文档的四种方法</a></li> <li><a href="/doc/455284891.html" target="_blank">java代码规范详细版</a></li> <li><a href="/doc/6011475974.html" target="_blank">Javadoc注释标签语法</a></li> <li><a href="/doc/8b6708227.html" target="_blank">java注释规范</a></li> <li><a href="/doc/9c10547313.html" target="_blank">Javadoc在Eclipse中的配置和使用</a></li> <li><a href="/doc/b2183619.html" target="_blank">jar包添加javadoc注释文档</a></li> <li><a href="/doc/d66982901.html" target="_blank">javadoc注释</a></li> <li><a href="/doc/fc9047417.html" target="_blank">Eclipse导出JavaDoc中文乱码问题解决</a></li> <li><a href="/doc/1c8339997.html" target="_blank">JavaDoc命令使用说明</a></li> <li><a href="/doc/4229976.html" target="_blank">javadoc文档的生成</a></li> </ul> <div class="coltitle">最新文档</div> <ul class="lista"> <li><a href="/doc/0f19509601.html" target="_blank">幼儿园小班科学《小动物过冬》PPT课件教案</a></li> <li><a href="/doc/0119509602.html" target="_blank">2021年春新青岛版(五四制)科学四年级下册 20.《露和霜》教学课件</a></li> <li><a href="/doc/9b19184372.html" target="_blank">自然教育课件</a></li> <li><a href="/doc/3019258759.html" target="_blank">小学语文优质课火烧云教材分析及课件</a></li> <li><a href="/doc/d819211938.html" target="_blank">(超详)高中语文知识点归纳汇总</a></li> <li><a href="/doc/a419240639.html" target="_blank">高中语文基础知识点总结(5篇)</a></li> <li><a href="/doc/9d19184371.html" target="_blank">高中语文基础知识点总结(最新)</a></li> <li><a href="/doc/8a19195909.html" target="_blank">高中语文知识点整理总结</a></li> <li><a href="/doc/8519195910.html" target="_blank">高中语文知识点归纳</a></li> <li><a href="/doc/7f19336998.html" target="_blank">高中语文基础知识点总结大全</a></li> <li><a href="/doc/7119336999.html" target="_blank">超详细的高中语文知识点归纳</a></li> <li><a href="/doc/6619035160.html" target="_blank">高考语文知识点总结高中</a></li> <li><a href="/doc/6719035161.html" target="_blank">高中语文知识点总结归纳</a></li> <li><a href="/doc/4a19232289.html" target="_blank">高中语文知识点整理总结</a></li> <li><a href="/doc/3b19258758.html" target="_blank">高中语文知识点归纳</a></li> <li><a href="/doc/2619396978.html" target="_blank">高中语文知识点归纳(大全)</a></li> <li><a href="/doc/2b19396979.html" target="_blank">高中语文知识点总结归纳(汇总8篇)</a></li> <li><a href="/doc/1419338136.html" target="_blank">高中语文基础知识点整理</a></li> <li><a href="/doc/ed19066069.html" target="_blank">化工厂应急预案</a></li> <li><a href="/doc/bd19159069.html" target="_blank">化工消防应急预案(精选8篇)</a></li> </ul> </div> </div> <script> var sdocid = "41a96538001ca300a6c30c22590102020740f2ba"; </script> <div class="clearfloat"></div> <div id="footer"> <div class="ft_info"> <a href="https://beian.miit.gov.cn">闽ICP备16038512号-3</a> <a href="/tousu.html" target="_blank">侵权投诉</a>  ©2013-2023 360文档中心,www.360docs.net | <a target="_blank" href="/sitemap.html">站点地图</a><br /> 本站资源均为网友上传分享,本站仅负责收集和整理,有任何问题请在对应网页下方投诉通道反馈 </div> <script type="text/javascript">foot()</script> </div> </body> </html>