教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

Java开发规范V1.2 - 图文(9)

来源:网络收集 时间:2026-08-13
导读: 软件开发项目管理培训 第8章 表达式与语句 8.1 基本原则 表达式和语句应当清晰、简洁,易于阅读和理解,避免使用晦涩难懂的语句。 每行至多包含一条执行语句,过长当换行。 避免在构造方法中执行大量耗时的初始化工

软件开发项目管理培训

第8章 表达式与语句 8.1 基本原则

表达式和语句应当清晰、简洁,易于阅读和理解,避免使用晦涩难懂的语句。

每行至多包含一条执行语句,过长当换行。

避免在构造方法中执行大量耗时的初始化工作,应当将这种工作延迟到被使用时再创建相应资源,如果不可避免,则当使用对象池和Cache等技术提高系统性能。

避免在一个语句中给多个变量赋相同的值。它很难读懂。 不要使用内嵌(embedded)赋值运算符试图提高运行时的效率,这是编译器的工作。

尽量在声明局部变量的同时初始化。唯一不这么做的理由是变量的初始值依赖于某些先前发生的计算。

一般而言,在含有多种运算符的表达式中使用圆括号来避免运算符优先级问题,是个好方法。即使运算符的优先级对你而言可能很清楚,但对其他人未必如此。你不能假设别的程序员和你一样清楚运算符的优先级。

不要为了表现编程技巧而过分使用技巧,简单就好。

8.2 控制语句

判断中如有常量,则应将常量臵与判断式的左侧。如:

27

软件开发项目管理培训

if ( true == isAdmin())... if ( null == user)...

尽量不使用三目条件判断。

所有if语句必须用{}包括起来,即便是只有一句:

if (true){ //do something...... } if (true) i = 0; //不要使用这种 过多的else分句请将其转成switch语句或使用子方法。 每当一个case顺着往下执行时(因为没有break语句),通常应在break语句的位臵添加注释。如:

switch (condition) { case ABC: //statements; //继续下一个CASE case DEF: //statements; break; case XYZ: //statements; break; default: //statements; break; }//end switch 28

软件开发项目管理培训

8.3 循环语句

循环中必须有终止循环的条件或语句,避免死循环。

当在for语句的初始化或更新子句中使用逗号时,避免因使用三个以上变量,而导致复杂度提高。若需要,可以在for循环之前(为初始化子句)或for循环末尾(为更新子句)使用单独的语句。

因为循环条件在每次循环中多会执行一次,故尽量避免在其中调用耗时或费资源的操作,比较一下两种循环的差异:

//不推荐方式____________________________________________ while(index < products.getCount()){ //每此都会执行一次getCount()方法, //若此方法耗时则会影响执行效率 //而且可能带来同步问题,若有同步需求,请使用同步块或同步方法 } //推荐方式______________________________________________ //将操作结构保存在临时变量里,减少方法调用次数 final int count = products.getCount(); while(index < count){ } 第9章 错误与异常 9.1 基本原则

不能有未处理的异常,即不能把异常直接抛给客户;

异常要做日志,不能直接打印到控制台;正式代码中不应出现System.out.println()。

29

软件开发项目管理培训

通常的思想是只对错误采用异常处理:逻辑和编程错误,设臵错误,被破坏的数据,资源耗尽,等等。

通常的法则是系统在正常状态下以及无重载和硬件失效状态下,不应产生任何异常。

对于经常发生的可预计事件不要采用异常。 不要使用异常实现控制结构。 确保状态码有一个正确值。

在本地进行安全性检查,而不是让用户去做。

若有finally子句,则不要在try块中直接返回,亦不要在finally中直接返回。

9.2 已检查异常与运行时异常

已检查异常必须捕捉并做相应处理,不能将已检查异常抛到系统之外去处理。

对可预见的运行时异常当进行捕捉并处理,比如空指针等。通常,对空指针的判断不是使用捕捉NullPointException的方式,而是在调用该对象之前使用判断语句进行直接判断,如:

//若不对list是否为null检查,则其为null时会抛出空指针异常 if(null != list && 0 < list.size()){ for(int i = 0; i < list.size(); i++){ } }

建议使用运行时异常(RuntimeException)代替已检查异常

30

软件开发项目管理培训

(CheckedException),请参考网络资源以对此两种异常做更深入理解。

9.3 异常的捕捉与处理

捕捉异常是为了处理它,不要捕捉了却什么都不处理而抛弃之,最低限度当向控制台输出当前异常,如果你不想处理它,请将该异常抛给它的调用者,对每个捕捉到的异常都应调用日志工具输出异常信息,避免因异常的湮没。

多个异常应分别捕捉并处理,避免使用一个单一的catch来处理。如:

try { //do something }catch(IllegalStateException IllEx){ IllEx.printStackTrace(); //deal with IllEx }catch(SQLException SQLEx){ SQLEx.printStackTrace(); throw SQLEx; //抛给调用者处理 }finally{ //释放资源 } 第10章 测试与Bug跟踪 10.1 基本原则

测试不通过的代码不得提交到svn库release区或者发布。

31

…… 此处隐藏:253字,全部文档内容请下载后查看。喜欢就下载吧 ……
Java开发规范V1.2 - 图文(9).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/615121.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)