http://expert.csdn.net/Expert/topic/1120/1120676.xml?temp=.9443018

解决方案 »

  1.   

    不能改变是指字符串里的单个字符不能改变
    在C里面可以这样:
    strMsg="how are you";
    strMsg[0]='w';
    但在JAVA里面String不是字符序列,不能实现这样的操作
      

  2.   

    不能改变的意思是
    String str = "aa";
    str += "bb";
    当执行str += "bb";时,系统会先把"aa"和"bb"以StringBuffer的形势进行组合,然后再执行str="aabb",也就是说String的真正执行的事付值操作,其他操作都是假的
      

  3.   

    String 是固定大小的,初始化后不能改变。
    StringBuffer是可以变化的。
      

  4.   

    String是不可变类型
    StringBuffer 是可变类型
    String 赋值后不能改变
    StringBuffer 则没有这个问题
    在内容需要变化的时候尽量用StringBuffer 
    比如拼SQL语句的时候最好用StringBuffer
      

  5.   

    String对象是不能更改的,java还有另外的一个标准库StringBuffer,这个对象是可以被直接更改的。
    当你对字符串进行转换的时候,如增加,删除,应该使用StringBuffer.
    如果你有静态字符串,只是把他们连接起来,String对象是最佳选择!
      

  6.   

    String msg="kkkk";
    msg="llll"你没有改变msg的内容,实际上是你抛弃了最初的"kkkk"对象,重新生成了'llll'对象。String msg="kkkk";
    String m =msg;
    msg="llll"现在你得到了两个对象 "kkkk", "llll"  .msg和 m 是引用,好比是个指向对象的东东。