欢迎来到天天文库
浏览记录
ID:6031921
大小:238.50 KB
页数:14页
时间:2017-12-31
《java编码最佳实践指南》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、JAVA编码最佳实践指南JAVA编码最佳实践指南版本:V1.0未经许可,不可全部或部分发表、复制、使用于任何目的JAVA编码最佳实践指南文档审批修订记录文件状态:[]草稿[√]正式发布当前版本:作者:审核人:发布日期:日期版本编号修订号简要说明著者审核者审核日期1说明:“简要说明”主要是对修订原因和修订的内容进行简单说明。未经许可,不可全部或部分发表、复制、使用于任何目的JAVA编码最佳实践指南目录1JAVA代码相关12HIBERNATE相关43SQL/数据库相关5未经许可,不可全部或部分发表、复制、使用于任何目的JAVA编码最佳实践指南1Java代码
2、相关1、打开文件、流之后应及时关闭,避免过多占用系统IO资源。2、避免在for循环中做if判断,便于编译优化。3、不要两次初始化变量。例如:Stringa=newString();Stringa=some.invoke();优化为:Stringa=null;Stringa=some.invoke();4、使用finalstatic声明log4j对象,减少内存占用。例如:publicclassa{privateLog_logger=Log.getLogger(this.class);}优化为:publicclassa{privatefinalstatic
3、_logger=Log.getLogger(a.class);}5、使用StringBuffer拼接字符串。例如:Stringa=”abcdefg”+”hijklmno”+”xyz”;优化为:StringBufferab=NewStringBuffer().append(“abcdefg”).append(“hijklmno”).append(“xyz”);Stringa=ab.toString();6、使用预编译语句prepareStatement代替createStatement,并使用占位符生成SQL语句,传递参数。例如:11/14JAVA编码最
4、佳实践指南Stringsql=”select*fromawhereid=’”+id+”’”;Statementst=conn.createStatement(sql);st.executeQuery();优化为:Stringsql=”select*fromawhereid=?”;PreparedStatementpstmt=conn.prepareStatement(sql);pstmt.setString(1,id);pstmt.executeQuery(sql);1、避免在循环中声明对象、操作数据库、打开文件等。例如:for(inti=0;i5、i++){Stringdate=ds.getDate();Stringsql=”updateasetupdateDate=?Whereid=?”;ds.update(sql,newObject[]{date,i});}优化为:Stringdate=ds.getDate();Stringsql=”updateasetupdateDate=?Whereidin?”int[]ids=newint[n];for(inti=0;i6、3、合理使用缓存。4、异常在需要抛出的地方抛出,trycatch能整合就整合try{some.method1();//Difficultforjavac}catch(method1Exceptione){//andtheJVMruntime//Handleexception1//tooptimizethis11/14JAVA编码最佳实践指南}//codetry{some.method2();}catch(method2Exceptione){//Handleexception2}try{some.method3();}catch(method3Exce7、ptione){//Handleexception3}以下代码更容易被编译器优化try{some.method1();//Easiertooptimizesome.method2();some.method3();}catch(method1Exceptione){//Handleexception1}catch(method2Exceptione){//Handleexception2}catch(method3Exceptione){//Handleexception3}1、尽量不要将超过100K以上的大对象如数组、集合对象(List、Map)放到8、HttpSession或其他需要序列化的对象中,并注意及时清空Session。11/14JAV
5、i++){Stringdate=ds.getDate();Stringsql=”updateasetupdateDate=?Whereid=?”;ds.update(sql,newObject[]{date,i});}优化为:Stringdate=ds.getDate();Stringsql=”updateasetupdateDate=?Whereidin?”int[]ids=newint[n];for(inti=0;i6、3、合理使用缓存。4、异常在需要抛出的地方抛出,trycatch能整合就整合try{some.method1();//Difficultforjavac}catch(method1Exceptione){//andtheJVMruntime//Handleexception1//tooptimizethis11/14JAVA编码最佳实践指南}//codetry{some.method2();}catch(method2Exceptione){//Handleexception2}try{some.method3();}catch(method3Exce7、ptione){//Handleexception3}以下代码更容易被编译器优化try{some.method1();//Easiertooptimizesome.method2();some.method3();}catch(method1Exceptione){//Handleexception1}catch(method2Exceptione){//Handleexception2}catch(method3Exceptione){//Handleexception3}1、尽量不要将超过100K以上的大对象如数组、集合对象(List、Map)放到8、HttpSession或其他需要序列化的对象中,并注意及时清空Session。11/14JAV
6、3、合理使用缓存。4、异常在需要抛出的地方抛出,trycatch能整合就整合try{some.method1();//Difficultforjavac}catch(method1Exceptione){//andtheJVMruntime//Handleexception1//tooptimizethis11/14JAVA编码最佳实践指南}//codetry{some.method2();}catch(method2Exceptione){//Handleexception2}try{some.method3();}catch(method3Exce
7、ptione){//Handleexception3}以下代码更容易被编译器优化try{some.method1();//Easiertooptimizesome.method2();some.method3();}catch(method1Exceptione){//Handleexception1}catch(method2Exceptione){//Handleexception2}catch(method3Exceptione){//Handleexception3}1、尽量不要将超过100K以上的大对象如数组、集合对象(List、Map)放到
8、HttpSession或其他需要序列化的对象中,并注意及时清空Session。11/14JAV
此文档下载收益归作者所有