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

 我来答
刺任芹O
2022-11-16 · TA获得超过6.2万个赞
知道顶级答主
回答量:38.7万
采纳率:99%
帮助的人:8610万
展开全部
在Java当中,String是一个比较特殊的类,跟其他引用类型的变量不同,String在某些时候可以当作基本类型的变量来看待,这就是题目当中的s1和s2跟只创建一个对象的道理,创建的两个变量都指向了同一块内存空间。\x0d\x0aString s1=new String("bc"); String s2=new String("bc");则是创建两个对象,每次new的时候都是在内存当中另外开辟出一块空间分别储存。\x0d\x0a\x0d\x0a还有一句很重要的话就是:String永远不会发生改变,任何对String的操作都是另外返回一个新的String,而不是在原有的String上进行修改:\x0d\x0a例如:String s1 = "bc";\x0d\x0a String s2 = s1;\x0d\x0a\x0d\x0a s1 = "de";\x0d\x0a\x0d\x0a 这时输出s2会发现s2仍然等于"bc"\x0d\x0a\x0d\x0a正是String的这个特性,占用太多内存空间,后来才有了StringBuffer/StringBuilder两个类。\x0d\x0a关于String这个比较特殊类的用法还有很多,楼主有兴趣的话可以单独找来看看。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式