小弟是一个新手,有一个问题不解,请过路的各位大虾赐教!String s=“abc”;
    s=“abcd”
    String 类型的值是常量,值不能改变,为什么可以重新赋值呢?

解决方案 »

  1.   

    String s=“abc”;
        s=“abcd”
    是相当于abc没变,还是原来的那个abc
    s=“abcd”是相当于new了一个新的字符串叫abcd,而不是把原来的abc改成了abcd
      

  2.   

    s=“abcd”只是把s指向了"abcd"
    原来的"abc"并没有被改变
      

  3.   

    String s=“abc”;
        s=“abcd”
        String 类型的值是常量,值不能改变,为什么可以重新赋值呢?String s=“abc”;
    你首先定一个String 型的s,后面的 s=“abcd”,是因为你需要abcd才重新付值的。在c中我们需要一个String 型的s,可以直接String s;而在JAVA中就不可以,要给String一个初值才可以用(构造方法除外)。
      

  4.   

    String类是final的,因此,不能改变一个String对象本身、