请教:
如下String s="1";
s="2";
...
s="n";这样会产生很多垃圾内存!
请问各位大哥如何才能   在n次赋值中只产生一个对象呢?
(条件:不允许使用StringBuffer) 

解决方案 »

  1.   

    lz看看垃圾回收器就好啦垃圾回收机制有几种算法,比如判断是否可达或是对象是否为null当你s = "2" 的时候,"1"这个对象就会定时的被垃圾回收器回收,这个不用你考虑,就像c++中用析构函数一样。
      

  2.   

    记得string创建之后是不会更改的
      

  3.   

    seems mission impossible
    要知道String是immutable的
      

  4.   

    lz的要求很奇特啊 那干吗又不要用StringBuffer呢
      

  5.   

    java也有半底层的东西么
    比如char型数组
    或者自己封个String类要是非要用原来的String类的话
    那要看哪个高手能修改final字段了
    java现在有想bt发展的趋势
    jdk6.0已经能强制访问private成员了
    看来修改final字段也不是完全不可能哦~!@#!~@
      

  6.   

    我发现楼主的那陀字符都是简单的数字么
    那就用基本数据类型咯,比如char!
    基本数据类型和对应的数组都是随便赋值的,什么都不要担心!
      

  7.   

    用 public static final String s=new String("2");
    s="3";
    s="4";
    s="n";
    呵呵,,哈哈,,这样就可以了,,,,
    银行就是这么做的,,每天同时有数万的连接都可以的
      

  8.   

    "CSDN,where amazing happens!"^_^    学习到了...
      

  9.   

    是不是啊 都final了 还能改
      

  10.   

    引用 11 楼 sky_ccy 的回复:
    用 public static final String s=new String("2");  
    s="3";  
    s="4";  
    s="n";  
    呵呵,,哈哈,,这样就可以了,,,,  
    银行就是这么做的,,每天同时有数万的连接都可以的 final
      怎么能改呀
      

  11.   

    jre对付String这点处理问题应该是没问题的,当然你要求性能更好那就用StringBuilder
      

  12.   

    jre对付String这点处理问题应该是没问题的,当然你要求性能更好那就用StringBuilder
      

  13.   


    //同意,final了还改,相关无敌.......
      

  14.   

    final了还改,相关无敌.......
    本人同意各位的说法了