比如我定义了一个String类对象private String Content = "";然后我不断地执行Content = Content.concat(d.toString());(当然,这里d是不断新产生的值),会不会有超出String类长度的问题?还是在内存允许的范围内都可以?

解决方案 »

  1.   

    理论上应该只受jvm可用内存限制
      

  2.   

    同意,受jvm可用内存限制
    操作较长字符串,建议用StringBuffer
      

  3.   

    string应该是object的吧,不是基本类型啊,我觉得限制也是jvm限制吧
      

  4.   

    StringBuffer不受jvm可用内存限制?
      

  5.   

    看看String和StringBuffer的源代码。
    他们都是用一个char数组保存数据的。因此最大数应该是Integer.MAX_VALUE 
      

  6.   

    看来是受两个条件的最小值决定的
    一、Integer.MAX_VALUE
    二、jvm可用内存
      

  7.   


    不受限制
    或者说仅受jvm可用内存限制。Integer.MAX_VALUE 只是一种性能上的参考限制,非强制的
      

  8.   

    不受限制
    或者说仅受jvm可用内存限制。Integer.MAX_VALUE 只是一种性能上的参考限制,非强制的
    --------------------------------------------------------
    那如果定义一个char[],其大于Integer.MAX_VALUE的,编译时只要大于Integer.MAX_VALUE就报错