最好是SSH2开发的项目源码或者SSH,. 前提我希望是有两年工作经验以上人写出来的.      现在招工招的都是两年工作经验以上的.我想看看他们写的代码都是如何优化的.         也好有个编码的方向.. 谢谢.!     可跟贴,可直接发到 也可以 直接QQ联系我. 顺便告诉我你的昵称. 分数可以全部给你.

解决方案 »

  1.   


         关键 那JAVA 源码我都不知道应该怎么看.      从哪里入手都不知道.
      

  2.   

    越简单的东西越看出一个人的功底:
    看看到一个人写的一小段代码很有意思,给你看看:    public static String paddingZero(String aStrPadd, int aIntScale)
        {
            if(aStrPadd == null || "".equals(aStrPadd))
            {
                return "";
            }
            String strRet;
            for(strRet = trimHalfSpaces(aStrPadd); strRet.length() < aIntScale; strRet = (new StringBuilder()).append("0").append(strRet).toString()) { }
            return strRet;
        }
      

  3.   

    我想问一下 
     for(strRet = trimHalfSpaces(aStrPadd); strRet.length() < aIntScale; strRet = (new StringBuilder()).append("0").append(strRet).toString()) { } 
    中的trimHalfSpaces是什么方法啊  有什么作业啊  希望具体点
      

  4.   


    我来说说我的看法:这段代码最失败的地方在于for循环,每循环一次都要调用length()方法获取长度,每循环一次都要new出一个StringBuilder对象,toString出一个String对象,还不提append可能出现的扩容影响
      

  5.   

    开源项目,或者有兴趣看看Spring的源代码,很经典
      

  6.   


    这位兄台说得很对,应该把length()和StringBuilder提出来
      

  7.   

    这位兄台说得很对,应该把length()和StringBuilder提出来
      

  8.   


    哈哈!!代码虽然不是我写的,但是没做过测试可不能乱说。这可是一个C语言开发老手写的JAVA程序。到底干过C的然后学JAVA和直接学JAVA的区别在那里大家比较一下就明白了。像你们说的反复调用方法是在10条目以上可能有影响。大于千余条目才有质的差别。这个是用于金钱前补零,如果个十百千万数到10位是多少?你们以为人人都是李嘉诚,到底是一个变量占的空间影响效率还是反复调用一个方法影响效率自己掂量吧。StringBuilder构建在for之内到底为什么?我想稍微考虑一下也应该明白,时间片轮换系统中是怎么样的多想想。
    StringBuilder可不是安全字符串构建。
      

  9.   

    继续讨论,StringBuilder的问题不是我想说的。单就代码来看,应该先计算出需要补足的位数,然后构建一个‘0’的字符数组,用这个数组new出一个string,再加到前面。从风格习惯来讲,在for循环里面应该尽量避免不必要的新建对象和方法调用,方法调用影响效率,频繁的新建对象会增加JVM做full gc的次数,full gc存在一个stop the world的时间段,严重时可能导致系统长时间没有响应,更有甚者直接out of memory。这里的循环次数有限,也都是一些小对象,不过好的代码习惯是一个优秀的程序员之所以优秀的必要条件。
      

  10.   

    BTW,一看这段代码就知道是有着浓重的C背景的人写的,哈哈,看那变量的命名
      

  11.   

    没想到我放了一段代码引起了大家的注意,,哇哈哈!!!还是那句话,你认为不好的,往往它很好,甚至超乎你的想象。等你把长度计算出来,那段代码已经补完了。其实字符串相加,s1+s2是有第三个对象来承接的。即是缓冲字符串拼接也要(操作次数-1)次操作。如果有外围地址到底是几次自己想吧!没用new就没新建对象不适合JVM。最后一次回帖。。
      

  12.   

    public static String paddingZero(String aStrPadd, int aIntScale) 
        { 
            if(aStrPadd == null || "".equals(aStrPadd)) 
            { 
                return ""; 
            } 
            String strRet; 
            for(strRet = trimHalfSpaces(aStrPadd); strRet.length() < aIntScale; strRet = (new StringBuilder()).append("0").append(strRet).toString()) { } 
            return strRet; 
        } 
      

  13.   

    没想到一年后,会回来再次回帖.哈.
    这段代码其实也说不上什么精彩. 基本上可以说是C语言程序员的恶习. StringBULIDER嵌在FOR循环里,性能绝对无可挑剔. 但是JAVA设计就是牺牲性能加强可读性的, 很难想想把这段代码交给手下改的情况. 所以如果这是个核心类, 只是个别人维护, 我很愿意写成这样, 但是要是普通类, 我宁愿写的好懂点.