(3)用字符代替单字符串
StringBuilder str=new StringBuilder();
那么str.append("m")不如str.append('m')快还真没注意过这个呢

解决方案 »

  1.   

    顶,我也说一个:
    出现内存泄露,分析发现全局GC频繁时,可以考虑检查代码中大List、Map、数组等处,使用相应的clean方法,减轻GC压力,提高GC效率。
      

  2.   

    我也来一个:io操作频繁时,在finally代码中一定把outputStream.flush掉,在Web应用中尤其如此
      

  3.   

    用字符代替单字符串
    StringBuilder str=new StringBuilder();
    那么str.append("m")不如str.append('m')快
      

  4.   

    学习了
    问题是第五点,利用++和--以后,这个i就没用啦,需要再次使用这个脚标的时候不就完蛋啦
    for (int i=0; ++i<a.length;) {
       b = a[i];
       ......
       if (i > 5) {//  此处的i值错咯
          ...   
       }
    }
      

  5.   

    1.不同意 一般都会提前创建 启动慢可以接受 但是运行时慢无法接受 哪怕就一次
    2.看业务
    3.从AbstractStringBuilder源码来看应该是没错 单字符算的东西少
    4.一行或两行对性能没影响
    5.有指针肯定是指针最好 然后就是避免重复计算length 倒过来的效率确实要好
    6.严重同意
    7.没啥好说的
    8.同上
      

  6.   

    StringBuilder str=new StringBuilder();
    那么str.append("m")不如str.append('m')快真不知道……
      

  7.   

    总结的不错,顶一个。
    一点小意见: 
    个人认为java是一门业务开发语言,应该更加关注程序的可读性。
    以前做ACM的时候(C++),会把交换数字写成:
    a^=b;
    b^=a;
    a^=b;
    但是实际开发中,这样的代码并不友好。更何况是java,这样一门业务开发语言。
    这些tricks可以作为饭后谈资。
    不过有一个还是很重要的。
    比如内存的回收,可以用null进行人为标记,让JVM更早的进行回收。
      

  8.   


    我觉得用异或的方法没什么不妥  如果写这个代码同事看不懂  那么应该问同事  你是程序员吗  这就和i++一样  为什么不写i = i + 1没必要手工标null  编译器会帮你做的很好
      

  9.   

    再补充几条:
    (1)
    if(a==2){
    }
    if(a==1){
    }
    改写为
    if(a==2){
    }else if(a==1){
    }
    (2)swing中添加组件,先把组件属性设置好以后再加上去
    (3)服务器端权限校验是为了安全,但是浪费了性能,但是可以减少性能损耗,比如权限验证写入sql中,比如只有自己才能修改自己的文章,那么update....set....from 表格 where id=文章id and 作者id=当前用户id
    删除文章权限只有版主有权限
    那么sql为delete from 文章表 where id=文章表 and 版块id in(select 版块id from 版主表 where 版主id=当前用户id)
    这样权限和操作放在一条sql中执行快。
    增加记录操作无法写条件,但是如果采用批量执行sql语句,先增加,然后如果没有权限则删除记录 那么为更好.反正一般不会删除,正常客户端会校验权限.
      

  10.   

    支持楼主善于总结的习惯提出几个意见:5中描述的几种遍历方式效率没什么区别    另外
    int[] a=new int[10000];
    for(int i=0,len=a.length;i<len;i++){
    int b=a[i];
              //然后处理
    }len也不会重复计算,请认真理解一下for以及逗号表达式4中连续写还是分开,实际无影响,可以比较一下两种写法编译成class文件后的区别总结是积累的过程,整理和推翻总结中产生的瑕疵才是进步。
      

  11.   


    我觉得用异或的方法没什么不妥  如果写这个代码同事看不懂  那么应该问同事  你是程序员吗  这就和i++一样  为什么不写i = i + 1没必要手工标null  编译器会帮你做的很好看到这位仁兄的回复,我其实也想问,你是程序员吗?++  -- 的操作一直都不推荐在负载的运算中使用,为什么? 因为这玩意带来的结果完全和编译器挂钩
    异或的功能太唯一了,这样的性能提升基本可以忽略了
    object=null 这玩意仁者见仁的事情,不过我个人也推荐在一些内存消耗很多大,需要重点关注的地方可以使用这样的方式,同时可以通知gc该工作了,不要把编译器优化和GC自动回收当成神,他们也是按照逻辑工作的
    别让编码上的小花招给系统带来难以预估和确认的坑