以下JAVA代码 String s1="bc"; String s2="b为什么只创建了一个...

发布网友 发布时间:2024-10-23 22:36

我来回答

1个回答

热心网友 时间:5分钟前

在Java当中,String是一个比较特殊的类,跟其他引用类型的变量不同,String在某些时候可以当作基本类型的变量来看待,这就是题目当中的s1和s2跟只创建一个对象的道理,创建的两个变量都指向了同一块内存空间。
String s1=new String("bc"); String s2=new String("bc");则是创建两个对象,每次new的时候都是在内存当中另外开辟出一块空间分别储存。

还有一句很重要的话就是:String永远不会发生改变,任何对String的操作都是另外返回一个新的String,而不是在原有的String上进行修改:
例如:String s1 = "bc";
String s2 = s1;

s1 = "de";

这时输出s2会发现s2仍然等于"bc"

正是String的这个特性,占用太多内存空间,后来才有了StringBuffer/StringBuilder两个类。
关于String这个比较特殊类的用法还有很多,楼主有兴趣的话可以单独找来看看。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com