Java 程序编写规范

exit()
exit除了在main中可以被调用外,其他的地方不应该调用。因为这样做不给任何代码代码机会来截获退出。一个类似后台服务地程序不应该因为某一个库模块决定了要退出就退出。

异常
申明的错误应该抛出一个RuntimeException或者派生的异常。顶层的main()函数应该截获所有的异常,并且打印(或者记录在日志中)在屏幕上。

垃圾收集
JAVA使用成熟的后台垃圾收集技术来代替引用计数。但是这样会导致一个问题:你必须在使用完对象的实例以后进行清场工作。除非输出流一出作用域就关闭,非引用计数的程序语言,比如JAVA,是不能自动完成变量的清场工作的。必须象下面一样写:FileOutputStream fos = new FileOutputStream(projectFile); project.save(fos, "IDE Project File"); fos.close();Clone
下面是一种有用的方法:[code]implements Cloneable

public
Object clone()
{
try {
ThisClass obj = (ThisClass)super.clone();
obj.field1 = (int[])field1.clone();
obj.field2 = field2;
return obj;
} catch(CloneNotSupportedException e) {
throw new InternalError("Unexpected CloneNotSUpportedException: " + e.getMessage());
}
}[/code]final类
绝对不要因为性能的原因将类定义为final的(除非程序的框架要求)。如果一个类还没有准备好被继承,最好在类文档中注明,而不要将她定义为final的。这是因为没有人可以保证会不会由于什么原因需要继承她。

访问类的成员变量
大部分的类成员变量应该定义为protected的来防止继承类使用他们。注意,要用"int[]packets",而不是"intpackets[]",后一种永远也不要用。[code]public void setPackets(int[] packets) { this.packets = packets; }

CounterSet(int size)
{
this.size = size;
}[/code]REF
http://docs.hawebs.net/xhtml/java/code_conventions/docs/tasks/chapter1/chapter1_1.html