每次循环后的str是不是都要放在新的内存空间?  是
而原来的又是否可以被当作垃圾回收?           是
StringBuffer是不是没哟这个问题啊?          是
那他又是如何存储的呢?                      不知道。
hoho

解决方案 »

  1.   

    其实这种做法的主要缺点是运行效率太低。用StringBuffer的append()方法会好很多。
      

  2.   

    没有本质区别,
    String改变时,从新分配内存,原有的由于如果引用计数为零就被回收,否则保留;
    StringBuffer在执行Append方法时,按新的长度从新分配了存储数据的char[],原来的引用指向新的存储块,旧的char[]被回收.
      

  3.   

    其实区别真的不大
    在内存捉襟见肘的时候Vector的方法真的不可取
    但是现在应该没有机器到那个地步了吧,所以就算 用Vector也是没感觉的
      

  4.   

    但是gc()可不是随时都在工作的。
    我用JBuilder 7.0
    刚开始的占用45(Phy)50(Vir)
    然后用着用着就变成140(Phy)200(Vir)
    这是为什么?
      

  5.   

    bu不能完全依靠gc,java也有内存泄漏
      

  6.   

    gc()不是随时工作的,即使你的变量不用了,gc()也不工作,除非的你内存不够分配了,或者你强行调用gc(),不过后者也无法保证gc()立即可是工作:)