打字猴:1.700451943e+09
1700451943
1700451944 String str=“Log file is ready……”;
1700451945
1700451946 for(int i=0;i<max;i++){
1700451947
1700451948 //此处生成三个对象
1700451949
1700451950 str+=“log”+i;
1700451951
1700451952 }
1700451953
1700451954 应该修改为:
1700451955
1700451956 StringBuilder sb=new StringBuilder(20000);
1700451957
1700451958 sb.append(“Log file is ready……”);
1700451959
1700451960 for(int i=0;i<max;i++){
1700451961
1700451962 sb.append(“log”+i);
1700451963
1700451964 }
1700451965
1700451966 String log=sb.toString();
1700451967
1700451968 (5)使用非线性检索
1700451969
1700451970 如果在ArrayList中存储了大量的数据,使用indexOf查找元素会比java.utils.Collections.binarySearch的效率低很多,原因是binarySearch是二分搜索法,而indexOf使用的是逐个元素比对的方法。这里要注意:使用binarySearch搜索时,元素必须进行排序,否则准确性就不可靠了。
1700451971
1700451972 (6)覆写Exception的fillInStackTrace方法
1700451973
1700451974 我们在第8章中提到fillInStackTrace方法是用来记录异常时的栈信息的,这是非常耗时的动作,如果我们在开发时不需要关注栈信息,则可以覆盖之,如下覆盖fillInStackTrace的自定义异常会使性能提升10倍以上:
1700451975
1700451976 class MyException extends Exception{
1700451977
1700451978 public Throwable fillInStackTrace(){
1700451979
1700451980 return this;
1700451981
1700451982 }
1700451983
1700451984 }
1700451985
1700451986 (7)不建立冗余对象
1700451987
1700451988 不需要建立的对象就不能建立,说起来很容易,要完全遵循此规则难度就很大了,我们经常就会无意地创建冗余对象,例如这样一段代码:
1700451989
1700451990 public void doSomething(){
1700451991
1700451992 //异常信息
[ 上一页 ]  [ :1.700451943e+09 ]  [ 下一页 ]