9. 异常在需要抛出的地方抛出 , try catch能整合就整合
try {
some.method1(); // Difficult for javac
} catch( method1Exception e ) { // and the JVM runtime
// Handle exception 1 // to optimize this
} // code
try {
some.method2();
} catch( method2Exception e ) {
// Handle exception 2
}
try {
some.method3();
} catch( method3Exception e ) {
// Handle exception 3
}
已下代码 更容易被编译器优化
try {
some.method1(); // Easier to optimize
some.method2();
some.method3();
} catch( method1Exception e ) {
// Handle exception 1
} catch( method2Exception e ) {
// Handle exception 2
} catch( method3Exception e ) {
// Handle exception 3
}
10. For循环的优化
Replace…
for( int i = 0; icollection.size(); i++ ) {
...
}
with…
for( int i = 0, n = collection.size(); in; i++ ) {
...
}
5、 在JAVA + ORACLE 的应用系统开发中,java中内嵌的SQL语句尽量使用大写的形式,以减轻ORACLE解析器的解析负担 。
10、尽量采用lazy loading 的策略 , 即在需要的时候才开始创建 。
例如: String str = “aaa”;
if(i == 1) {
list.add(str);
}
应替换为:
if(i == 1) {
String str = “aaa”;
list.add(str);
}
12、不要在循环中使用:
Try {
} catch() {
}
应把其放置在最外层
java 大量for循环如何优化主要思想就是减少方法的压栈次数
最少的循环放到外面,最大的放到里面即可 。
把循环次数少的放外面,多的放里面,因为越到外面,执行次数要越少,下面是具体代码,你看看
内大外小
for( int k=0;k 10;k++){
for(int j=0;j 100;j++){
for(int i=0;i 1000;i++){
function(i,j,k);
}
}
}
k 10;k++; 执行10次
j 100;j++ 执行10*100次
i 1000;i++ 执行10*100*1000次
function(i,j,k); 执行10*100*1000次
共执行语句数=(10+10*100+10*100*1000)*2+10*100*1000=3002020
内小外大
for( int k=0;k 1000;k++){
for(int j=0;j 100;j++){
for(int i=0;i 10;i++){
function(i,j,k);
}
}
}
k 1000;k++; 执行1000次
j 100;j++ 执行1000*100次
i 10;i++ 执行10*100*1000次
function(i,j,k); 执行10*100*1000次
共执行语句数=(1000+1000*100+10*100*1000)*2+10*100*1000=3202000
所以执行效率应该是内大外小更高一些
内小外大-内大外小=3202000条语句-3002020条语句=199980条语句
优化下列代码并简述原因1、案例描述
某日,在JavaEye上看到一道面试题,题目是这样的:请对以下的代码进行优化
[java] view plaincopyprint?
for (int i = 0; i1000; i++)
for (int j = 0; j100; j++)
for (int k = 0; k10; k++)
testFunction (i, j, k);
2、案例分析
从上述代码案例可以看出,不论如何优化,testFunction()执行的次数都是相同的,该部分是不存在优化的可能 。那么优化只能从循环变量i,j,k的实例化、初始化、比较、自增等耗时方面来进行分析 。首先,分析原题代码循环变量在以上方面的耗时情况:
变量
实例化(次数)
初始化(次数)
比较(次数)
自增(次数)
i
1
1
1000
1000
j
1000
1000
1000*100
1000*100
k
1000*100
1000*100
1000*100*10
1000*100*10
目的:该代码性能优化就是要尽可能地减少循环变量i、j、k的实例化、初始化、比较、自增的次数,同时不引起其他可能的耗时运算 。
3、解决过程
优化方案①:
推荐阅读
- 如何筛选excel重复数据,如何筛选出重复项并单独显示
- 鸿蒙os2好不好,鸿蒙os2是基于安卓吗
- 怎么还是电视,怎么又上电视了
- python中断执行函数 python 如何中断循环程序
- gis中栅格算法,gis栅格数据处理
- python环境搭建网站,python搭建网站步骤
- 电脑如何安装鸿蒙os2.0电脑端,电脑如何安装鸿蒙系统pc版
- 养小猫的java代码 python猫咪代码
- 霍金是什么病视频,霍金的病是