wool王 发表于 2005-10-17 01:38

[原创]Java最佳实践笔记。(不断更新)

a        先写注释后写代码
写代码注释的最好方法是在写代码之前就写注释。这使你在写代码之前可以想想代码的功能和运行。而且这样确保不会遗漏注释。另一种方法是边写代码边写注释。因为注释可以使代码更易理解,所以在程序开发的过程中,也可以利用这一点。如果打算花些时间写注释,那么至少你应从这个过程中获得些什么

b        在注释中加入HTML标记
在文档注释中加入HTML标记可使最后生成的技术文档的格式丰富而变得更有表现力,因此强烈推荐采用在文档注释中加入HTML标记的做法,具体做的时候可在任一有HTML编辑功能的编辑器(如FrontPage)中编辑后再将HTML源代码拷贝进源代码编辑器中。但是,由于Javadoc可在多种媒体中发布,可能会在一个不支持HTML的媒体上进行发布,因此在文档注释中加入HTML标记也会带来一些潜在的问题,但在当前环境中不会出现问题。
原理:在文档注释中加入HTML标记可使最后生成的技术文档的格式丰富,表达力强。

c        对每种类型的类写出一个模板
这些类型可能是:Applet,Application,Form等。这一个实践也可能由IDE环境直接提供,如JBuilder直接在New时会提示采用某种模板。
原理:因为不必每次都重写,而模板是遵循规范的,因此可以与规范更加符合。

d        多使用Object.equals()而不要使用“==”做值的比较
许多情况下的比较都可以同时允许使用Object.equals()和“==”并获得相同结果,但更多情况下是使用Object.equals()才能正常工作。

e        J2EE应用中多使用System.out.print()将中间信息输出到控制台
将中间信息输出到控制台可以帮助编码人员了解系统的内部运作,方便调试,同时可以及时发现编码过程存在的隐藏问题。建议输出到控制台的信息主要包括:数据库SQL语句,中间变量。

f        尽量少用抽象类,而用接口取代;必要时可以抽象类和接口偕同使用
任何实现了接口的具体类都可以被当前对象调用;而当前对象到底调用的是哪个具体类完全可以动态的决定,这样一来就使系统的可插入性有了保证。

wool王 发表于 2005-10-17 01:41

我在实践过程中会遇到种种问题,以上是解决那些问题我觉得比较好的方法,不少方法是借鉴别人的,但我都有亲身体会,希望对大家有帮助。

同时希望大家跟贴也贴出自己的实践笔记,丰富下内容。

寂寞高手 发表于 2005-10-17 13:11

d      多使用Object.equals()而不要使用“==”做值的比较
许多情况下的比较都可以同时允许使用Object.equals()和“==”并获得相同结果,但更多情况下是使用Object.equals()才能正常工作。

e      J2EE应用中多使用System.out.print()将中间信息输出到控制台
将中间信息输出到控制台可以帮助编码人员了解系统的内部运作,方便调试,同时可以及时发现编码过程存在的隐藏问题。建议输出到控制台的信息主要包括:数据库SQL语句,中间变量。


我只用到了 以上两个

wool王 发表于 2005-10-17 22:40

呵呵,有共鸣就好了。楼上你也贴些你的笔记啊。

jerryjill 发表于 2005-10-19 02:22

楼主~~~我顶~~~~咔咔~

wool王 发表于 2005-10-19 12:16

楼上的。你也贴些经验出来啊,搞技术的。。。哈哈。

寂寞高手 发表于 2005-10-21 11:31

我还是新手呢。
没啥经验哦。还望老大以后多多指教。

wool王 发表于 2005-10-22 01:01

我老人了,很快就毕业了。希望能留点什么在工大。

师弟师妹们一起努力。

寂寞高手 发表于 2005-10-31 01:51

Originally posted by 寂寞高手 at 2005-10-21 11:31 AM:
我还是新手呢。
没啥经验哦。还望老大以后多多指教。

哈.这样说来你应该叫我大大师兄啊.保守估计大你两届.

hjack 发表于 2005-10-31 12:39

写Interface,在interface里写上每个方法的功能和用法,把interface交给要用它的程序员,而隐藏实现细节.

用程序诠释生命 发表于 2005-12-6 01:22

a      先写注释后写代码

注:好的方法代码行数应该在十行以内,所以先写注释好像没什么必要。写完一个方法再写它的注释也不迟。

b      在注释中加入HTML标记
注:同意

c      对每种类型的类写出一个模板
注:不懂。

d      多使用Object.equals()而不要使用“==”做值的比较
注:楼主是否了解过==不能正常工作的原因,我想是楼主对引用变量跟对象的理解不清楚。

e      J2EE应用中多使用System.out.print()将中间信息输出到控制台
注:不懂。

f      尽量少用抽象类,而用接口取代;必要时可以抽象类和接口偕同使用
注:为什么?

weechou 发表于 2005-12-6 15:58

从事java方面工作半年了的我发现自己还没有形成什么习惯,哎悲哀。。。


好怕wool王你的头像^^^
终于明白为什么编程区人这么少?!!(mm就更少,怕编程又怕wool王头像)
感觉喜欢泡论坛又喜欢编程的人不太多。。。
但喜欢做编程的人大都很喜欢玩游戏的。。。

[ Last edited by weechou on 2005-12-6 at 16:00 ]

hjack 发表于 2005-12-9 18:56

String对象带来的隐患
String对象却会给我们带来一些安全上的隐患。如果密码是存储在 Java String 对象中的,则直到对它进行垃圾收集或进程终止之前,密码会一直驻留在内存中。即使进行了垃圾收集,它仍会存在于空闲内存堆中,直到重用该内存空间为止。密码 String 在内存中驻留得越久,遭到窃听的危险性就越大。更糟的是,如果实际内存减少,则操作系统会将这个密码 String 换页调度到磁盘的交换空间,因此容易遭受磁盘块窃听攻击。为了将这种泄密的可能性降至最低(但不是消除),您应该将密码存储在 char 数组中,并在使用后对其置零(String 是不可变的,无法对其置零)。

wool王 发表于 2005-12-9 22:16

用StringBuffer代替String。
主要是基于效率考虑,StringBuffer的执行效率比String要高,对于经常调用的字符串建议使用StringBuffer

用程序诠释生命 发表于 2005-12-10 12:52

Originally posted by wool王 at 2005-12-9 10:16 PM:
用StringBuffer代替String。
主要是基于效率考虑,StringBuffer的执行效率比String要高,对于经常调用的字符串建议使用StringBuffer

StringBuider好像只是在某些应用的时候效率会高于String,比如在进行字符串连接或大字符串操作的时候,并不是任何时候效率都高于String。

wool王 发表于 2005-12-10 14:17

Originally posted by 用程序诠释生命 at 2005/12/10 04:52:


StringBuider好像只是在某些应用的时候效率会高于String,比如在进行字符串连接或大字符串操作的时候,并不是任何时候效率都高于String。


别老是踩人场的时候自己说些不够说服力的观点。

wool王 发表于 2005-12-10 14:29

a      先写注释后写代码

注:好的方法代码行数应该在十行以内,所以先写注释好像没什么必要。写完一个方法再写它的注释也不迟。
再注:当你在team中,或者你一个人负责写很多个模块/类/方法的时候,你会一个一个慢慢写,还是先写注释,将所有输入输出语句写好?我这里写先注释,不是说写程序前就先写2仟字的功能说明甚至算法说明,是先简单写一些必要描述,一些必要算法说明那些等写完注释后再写。笨!

b      在注释中加入HTML标记
注:同意

再注:既然你同意了我也没什么说。。。

c      对每种类型的类写出一个模板
注:不懂。
再注:不懂就自己去查资料

d      多使用Object.equals()而不要使用“==”做值的比较
注:楼主是否了解过==不能正常工作的原因,我想是楼主对引用变量跟对象的理解不清楚。
再注:你的“我想”的根据来自哪里?你回帖帮我解释下对象比较和引用比较概念和不同。

e      J2EE应用中多使用System.out.print()将中间信息输出到控制台
注:不懂。
再注:这里我自己说得不好,应该是“调试的时候多使用System.out.print输出中间信息”。PS:你不懂是因为你不了解java,虽然java和C#几乎一样,但不是全部一样,你个白痴java方面少来这里充内行。

f      尽量少用抽象类,而用接口取代;必要时可以抽象类和接口偕同使用
注:为什么?
再注:不为什么,我反而想了解下C#有接口这个概念吗?如果有的话你觉得有了抽象类后接口为什么还要被发明出来?

wool王 发表于 2005-12-10 14:31

Originally posted by 用程序诠释生命 at 2005/12/10 04:52:


StringBuider好像只是在某些应用的时候效率会高于String,比如在进行字符串连接或大字符串操作的时候,并不是任何时候效率都高于String。

这方面我确实没太多亲身经历,你回帖帮我具体说明下。

jerryjill 发表于 2005-12-10 16:37

路过技术地带……顶wool一个……全部睇吾明……郁闷…………

powerwind 发表于 2006-6-28 00:46

旧帖也要顶上来。
我知道Wool的JAVA实践笔记一定还有更多精彩的。
师兄你不留多点给师弟师妹,可不行啊!
呵呵~
页: [1] 2
查看完整版本: [原创]Java最佳实践笔记。(不断更新)