当前位置: 代码迷 >> Java相关 >> 关于String
  详细解决方案

关于String

热度:407   发布时间:2007-06-30 13:56:08.0
关于String
String s1="N";
s1="n";
String s2=new String("H");
s2="h";
其中s1和s2有什么区别??
搜索更多相关的解决方案: String  

----------------解决方案--------------------------------------------------------

两个不同对象,这就是区别


----------------解决方案--------------------------------------------------------

我问的不是这个;
我记得在一本书上看过这两种类型在处理equals()或"=="运算时
有区别的,好像要涉及储存池,trim()什么的,但是我不是很懂,不知道谁会?


----------------解决方案--------------------------------------------------------
如果是直接赋值的,就存在常量池里面

比如

String a="test";

String b="test";

这个时候, a==b是返回 true的

如果String b=new String("test");
这个时候,a==b就返回false了


----------------解决方案--------------------------------------------------------
既然是在常量池中,那又为什么是可改的?
----------------解决方案--------------------------------------------------------
谁说可以改?

你只能把你的引用指向别的地方,"test"这个字符串是不可能被更改的

String a="test";
String b=a;


b="other";

这个时候,a指向的还是test
----------------解决方案--------------------------------------------------------
月经帖
----------------解决方案--------------------------------------------------------
  相关解决方案