在Herber Schildt的Java参考大全里说,Java类型的对象是不可改变的,一旦创建了一个String对象,
就不可以改变它的内容。还说到,StringBuffer允许改变字符串。
这是怎么理解的呢?
用java不久,请教。

解决方案 »

  1.   

    String对象的值是只读的,或者说是不变的;String对象的内容永远不变。如果看到这样的语句:
    String string ="redWood";
    string+="Java";
    //do something with str
            string="oak";
    第二个赋值语句赋一个新值给变量str,实际上是将指向其内容的"oak"的字符串对象的引用传递给了它。每次执行一个看上去好像修改String对象的操作,例如,上面所用的+=,实际上是产生了另一个只读的String对象。StringBuffer类用于可变的字符串。通过某些方法调用可以改变该序列的长度和内容。 且其容量也可随字符串的长度增长而增大。
      

  2.   

    Java类型的对象是不可改变的,
    --------------------------------
    String 类型吧?