java中,string是字符串常量类

来源:百度知道 编辑:UC知道 时间:2024/05/04 01:46:07
java中,string是字符串常量类,
String对象建立后不能修改是什么意思的?

是不是说,比如,
String s;
s="sssss";

然后,s="111"就是错误了?

String不是基本类型,java中字符串不是基本类型.

String s;
是声明一个字符串对象的引用S,不是声明一个对象.

s="sssss";是把s这个对象的引用,具体的对象.

所以
String s;
s="sssss";
这个是可以编译通过的.
s="111";
也是可以通过的.只是这样s,引用的对象就不是"sssss"了.
而是一个新的对象"111";
对象"sssss"仍然存在,知道被垃圾回收.

String是对象,不是字符串。字符串是基本类型。这是两个不同的类型。
String的不可变是指,String对象一旦实例化后在虚拟机中就是唯一的。
s="22"之类的语句实际上是把一个叫s的String引用指向"22"这个String对象。

String s;
s="sssss";
这两句语句执行后,产生一个字符长对象sssss,而s指向它。

这个时候再执行
s="111";
也没有错误,只是让s重新指向字符串111

此时原来的字符串对象sssss将变为垃圾,不定时被垃圾回收器回收