java开发注意事项培训课件.ppt

java开发注意事项培训课件.ppt

ID:57057911

大小:183.50 KB

页数:18页

时间:2020-07-30

java开发注意事项培训课件.ppt_第1页
java开发注意事项培训课件.ppt_第2页
java开发注意事项培训课件.ppt_第3页
java开发注意事项培训课件.ppt_第4页
java开发注意事项培训课件.ppt_第5页
资源描述:

《java开发注意事项培训课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java开发注意事项 培训教材2009年1月13日代码检查代码审查对消除一些特别细节的错误大有裨益,尤其是那些能够容易在阅读代码的时候发现的错误,这些错误往往不容易通过机器上的测试识别出来。通常给别人的工作挑错要比找自己的错容易些。别样视角的存在也解释了为什么作者需要编辑,而运动员需要教练的原因。如果审查者能够有意识地寻找特定的错误,而不是靠漫无目的的浏览代码来发现错误,那么代码审查的效果会事半功倍。不当代码代码格式问题:1)空行是否得体?2)代码行内的空格是否得体?3)注释是否清晰并且必要?4)长行拆分是否得体

2、?5)If、for、while、do等语句自占一行,不论执行语句多少都要加“{}”。6)标识符的长度应当符合“min-length&&max-information”原则?7)是否编写太复杂或者多用途的复合表达式?8)Case语句的结尾是否忘了加break?9)构造函数中是否遗漏了某些初始化工作?不当代码是否违背了继承和组合的规则?(1)若在逻辑上B是A的“一种”,并且A的所有功能和属性对B而言都有意义,则允许B继承A的功能和属性。(2)若在逻辑上A是B的“一部分”(apartof),则不允许B从A派生,而是要用

3、A和其它东西组合出B。不当代码变量值问题:(1)变量的初始化或缺省值有错误吗?(2)变量发生上溢或下溢吗?(3)变量的精度够吗?逻辑判断问题:(1)由于精度原因导致比较无效吗?(2)表达式中的优先级有误吗?(3)逻辑判断结果颠倒吗?循环问题:(1)循环终止条件不正确吗?(2)无法正常终止(死循环)吗?(3)错误地修改循环变量吗?(4)存在误差累积吗?不当代码Exception处理问题:(1)忘记进行错误处理吗?(2)错误处理程序块一直没有机会被运行?(3)错误处理程序块本身就有毛病吗?如报告的错误与实际错误不一致

4、,处理方式不正确等等。(4)错误处理程序块是“马后炮”吗?如在被它被调用之前软件已经出错。文件I/O问题:(1)对不存在的或者错误的文件进行操作吗?(2)文件以不正确的方式打开吗?(3)文件结束判断不正确吗?(4)没有正确地关闭文件吗?不当代码内存和资源操作问题:1)是否一次申请了太大的内存,例如一次性将大型文件读出而不是进行流式处理2)是否向全局集合变量(例如会话数据,Map表)添加数据,而忘记移除3)是否长期持有大型对象的引用4)建立tcp连接,而不进行关闭5)使用JDBC访问数据库,忘记关闭statment

5、6)自己使用JDBC连接,而不是使用系统的连接池7)创建过多的线程,或者线程式的定时器,例如jdk自带的定时器。跨平台问题:1)是否将代码限制在某个操作系统,例如定义的路径格式为windows系统2)调用某个特定的操作系统的命令或程序,导致在其他操作系统上功能失效常见不当代码多次拷贝字符串生成不可变(immutable)对象的多份拷贝。不可变对象是不可改变的,因此不需要拷贝它。最常用的不可变对象是String。如果你必须改变一个String对象的内容,你应该使用StringBuffer。常见不当代码没有克隆(cl

6、one)返回的对象不必要的克隆自编代码来拷贝数组拷贝错误的数据有时候程序员知道必须返回一个拷贝,但是却不小心拷贝了错误的数据。由于仅仅做了部分的数据拷贝工作,代码与程序员的意图有偏差检查new操作的结果是否为null常见不当代码用==替代.equals混淆原子操作和非原子操作。Java保证读和写32位数或者更小的值是原子操作,也就是说可以在一步完成,因而不可能被打断,因此这样的读和写不需要同步。不过,这个保证仅限于读和写(get,set)在catch块中作清除工作.代码仅仅处理了Exception,而没有涉及到E

7、rror。当try块运行出现了Error,流也应该被关闭常见不当代码增加不必要的catch块.增加不必要的catch块的代码:捕获到的异常又立即被抛出没有正确实现equals,hashCode,或者clone等方法。方法equals,hashCode,和clone由java.lang.Object提供的缺省实现是正确的。不幸地是,这些缺省实现在大部分时候毫无用处,因此许多类覆盖其中的若干个方法以提供更有用的功能。但是,问题又来了,当继承一个覆盖了若干个这些方法的父类的时候,子类通常也需要覆盖这些方法。在进行代码审

8、查时,应该确保如果父类实现了equals,hashCode,或者clone等方法,那么子类也必须正确。正确的实现equals,hashCode,和clone需要一些技巧。Java内存泄露内存的泄漏指的是内存的一块区域一直没有被释放,当这样的区域越来越多时,系统就会崩溃。尽管java虚拟机和垃圾回收机制管理着大部分的内存事务,但是在java软件中还是可能存在内存泄漏的情况。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。