现在的位置: 首页 > 综合 > 正文

java优化技术积累

2014年04月27日 ⁄ 综合 ⁄ 共 1190字 ⁄ 字号 评论关闭

1.避免在循环条件中使用复杂表达式

2.为vectors ,hashtables 定义初始大小。

3.在finally中关闭stream释放资源。

4.用System.arraycopy()来替代循环复制数组。

5.getter,setter设置为final

6.若左边对象的静态类型等于右边,instanceof表达式返回永远是true

7.避免不必要的强制类型转换,如子类,赋值到父类对象。

8.查找单个字符,用charat()替代startwith();

9.用移位操作代替'a/b'。eg:a/4    ->>      a >> 2   a/8  ->> a >>3

10.用移位操作代替a*b , eg:a*4  ->>     a<<2     a*8  ->>  a<<3

11.在字符串相加的时候,若加数为一个字符,用'a' 代替“a”.

12.不要在循环中调用synchronized

13.将try/catch移除循环

14.用stringtokenizer 代替indexof(),substring();

15.不在循环体中实例化变量

16.访问静态变量和实例变量比访问局部变量多浪费2-3个始终周期。

17.! 操作符降低程序的可读性

18.与一个接口进行instanceof操作比判断某个类更快

19.Java+oracle应用中,Java内嵌的sql尽量用大写,减少oracle解析器的解析负担

20.用for(int i=0;i<list.size();i++) 不如用for(int i=0,int len=list.size();i++).

21.异常应该用于错误处理,而不是控制程序流程。

22.不用new创建对象的实例,用new时,构造函数链中的所有构造函数都会被自动调用。但如果对一个对象实现了cloneable接口,

我们可以通过它的clone方法,clone 不会调用任何类构造函数。

eg:

public static Create getNewCreate(){  return new Create(); }

替换为:

private static Create temp=new Create();

public static Create getNewCreate(){  return (Create)temp.clone();  }

23.不要将数组声明为:public static final

24.单线程尽量使用HashMap ,ArrayList 不推荐HashTable,Vector,因为它们使用了同步机制。

25. 用i%2 !=0 来确定奇数,不用i%2 == 1 ,因为i是负的时候,不成立,高效式:(i&1)!=0

26.2.0-1.1=0.999999999   所以,货币使用如下方式:

货币最小单位分来表示,或者BigDecimal,一定要用BigDecimal(string)构造器,不能用BigDecimal(double)

比较大小用compareto

27.

【上篇】
【下篇】

抱歉!评论已关闭.