工作教训

可笑场景1:

if(true==choose()){
	业务逻辑1
	
}eles{
	业务逻辑2
	
}
public boolean choose(){
	...
	写了一些逻辑判断
	...
	return true;
}
改进
if(choose())
	业务逻辑1
业务逻辑2
	
public boolean choose(){
	...
	写了一些逻辑判断
	...
	return true;
}

  

package com.zyqtest;

public class Test {
    public static void main(String[] args) {
        Test test = new Test();
        System.out.println(test.quicktest());
    }

    public boolean quicktest(){
        try{
            int i=1/0;
        }catch (Exception e){
            System.out.println("==========="+e);
            return false;
        }finally {
            System.out.println("+++++++++++");
            return true;
        }
    }
}

  

运行结果;

===========java.lang.ArithmeticException: / by zero
+++++++++++
true

  

改进:

package com.zyqtest;

public class Test {
    public static void main(String[] args) {
        Test test = new Test();
        System.out.println(test.quicktest());
    }

    public boolean quicktest(){
        try{
            int i=1/0;
            return true;
        }catch (Exception e){
            System.out.println("==========="+e);
            return false;
        }finally {
            System.out.println("+++++++++++");
        }
    }
}

  

运行结果:

===========java.lang.ArithmeticException: / by zero
+++++++++++
false

  

workdate in(#{workdate},#{workdate}-1,#{workdate}-2)

改进:

workdate between #{workdate}-2 and  #{workdate} 

 

我使用的是oracle数据库,注意使用plsql查看这两条SQL语句的执行计划,会发现,在筛选条件是连续值的时候,使用between and 语法,执行效率更加高效。

还有就是我们在自己的类中创建的方法,只有自己类内部使用,最好将方法定义成private的,不要定义成public的。

 

工作教训

上一篇:怎么实现一个RPC框架?


下一篇:limits.conf 配置不生效问题排查