JAVA源代码缺陷说明.docx

JAVA源代码缺陷说明.docx

ID:51690434

大小:54.95 KB

页数:27页

时间:2020-03-15

JAVA源代码缺陷说明.docx_第1页
JAVA源代码缺陷说明.docx_第2页
JAVA源代码缺陷说明.docx_第3页
JAVA源代码缺陷说明.docx_第4页
JAVA源代码缺陷说明.docx_第5页
资源描述:

《JAVA源代码缺陷说明.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JAVA源代码缺陷说明1.1 资源管理类1.1.1 资源泄漏缺陷描述:资源使用结束后未释放资源。缺陷危害:资源泄漏可能导致资源长时间被占用而无法释放,进而可能导致资源耗尽而系统不可用。修复或避错建议:资源使用结束后调用释放资源的方法。示例1:不规范用法publicvoidexampleFun(Stringname){FileInputStreamstream=newFileInputStream(name);//使用stream对象...}//方法退出前未释放stream对象的资源示例2:规范用法publicvoidexamp

2、leFun(Stringname){FileInputStreamstream=newFileInputStream(name);try{//使用stream对象...}catch(Exceptione){...}finally{stream.close();//释放stream对象的资源}}1.2 资源使用类1.2.1 使用已释放的资源缺陷描述:使用已释放的资源。缺陷危害:使用已释放的资源会导致程序抛出异常。示例:不规范用法publicvoidexampleFun(InputStreamstream){...stream.c

3、lose();//释放stream对象的资源...byte[]b=newbyte[200];inti=stream.read(b);//使用已释放资源的stream对象...}1.3 解引用类1.1.1 null解引用缺陷描述:对于值可能为null的引用类型变量,未检查变量是否为null而直接解引用该变量。缺陷危害:null解引用会导致程序抛出NullPointerException类型的运行时异常。修复或避错建议:在解引用变量前检查变量是否为null并对变量值为null的情况进行处理。示例1:不规范用法publicStrin

4、gexampleFun(boolflag,Strings1,Strings2){Strings3=null;if(flag){s3=s1+s2;}//变量s3的值可能为null,当变量s3的值为null时,以下语句出现null解引用returns3.trim();}示例2:规范用法publicStringexampleFun(boolflag,Strings1,Strings2){Strings3=null;if(flag){s3=s1+s2;returns3.trim();}returnnull;}1.2 控制语句类1.2.

5、1 用于控制程序流程的条件表达式为常量缺陷描述:用于控制程序流程的条件表达式的结果恒为真或恒为假。缺陷危害:用于控制程序流程的条件表达式为常量时,代码的部分分支路径永远不会被执行,条件表达式变得毫无意义。当用于控制循环的条件表达式的结果恒为真时,可能导致程序进入死循环。示例:不规范用法publicvoidexampleFun(){Strings="";...if(s==null){//用于控制程序流程的条件表达式“s==null”恒为假...}}1.2.2 “If”语句的“then”分支无语句缺陷描述:“If”语句的“then

6、”分支无语句。缺陷危害:“If”语句的“then”分支无语句通常不是程序的本意。“If”语句的“then”分支无语句通常是遗漏了代码,可能会导致程序出错或程序功能实现不正确。修复或避错建议:补充“then”分支的代码。示例:不规范用法publicvoidexampleFun(booleancond){if(cond){//“If”语句的“then”分支无语句}}1.1.1 “If”语句的“then”分支只有分号缺陷描述:“If”语句的“then”分支只有分号。缺陷危害:“If”语句的“then”分支只有分号通常不是程序的本意。

7、“If”语句的“then”分支只有分号通常是打字错误,可能会导致“If”语句的“then”分支部分的代码在不满足判断条件时也进行执行。修复或避错建议:修复打字错误。示例:不规范用法publicvoidexampleFun(){inta=0;if(a>0);//“If”语句的“then”分支只有分号{a++;}}1.1.2 在用于控制程序流程的条件表达式中使用位运算符“&”或“

8、”缺陷描述:在用于控制程序流程的条件表达式中使用位运算符“&”或“

9、”。缺陷危害:当用于控制程序流程的条件表达式使用位运算符“&”或“

10、”时,程序的本意

11、可能为使用运算符“&&”或“

12、

13、”,可能会改变原本的判断逻辑,导致程序执行不同的分支路径。修复或避错建议:使用运算符“&&”或“

14、

15、”。示例1:不规范用法publicvoidexampleFun(intarr[]){//在用于控制程序流程的条件表达式中使用位运算符“&”if(

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

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

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