解决方案 »

  1.   

    因为有可能char数组中没有oldChar  这样就没必要循环了
      

  2.   

    其实没得必要去纠结,每个人的想法不一样
    你仔细想想代码就知道了
    如果原始字符串是a,现在想要把a替换成为b
    即调用replace('a','b')方法,你在看看你的代码是否有不妥之处呢?
      

  3.   

    关键是理解那段注释:/* avoid getfield opcode */
    参考:avoid getfield opcode
      

  4.   

    目测是为了避免创建重复的字符串对象,你那样就算字符串里不包含要replace的字符,还是会创建一个新字符串,这有违String类的设计原则,尽量避免创建两个内容相同的字符串。