当前位置: 代码迷 >> Java相关 >> 我这样写对不对??
  详细解决方案

我这样写对不对??

热度:67   发布时间:2006-03-27 09:30:00.0
我这样写对不对??

我这样写对不对??
String s1="abc";

String s2="abc";

System.out.println(s1==s2);

结果是true还是false?为什么?

搜索更多相关的解决方案: 不对  

----------------解决方案--------------------------------------------------------
当然是true啦
这涉及到String的一些操作
当你给String赋值时,它会把这个值和内存里面已有的值比较,如果有一样的
那么就直接把另一个String的引用指向以前的那个值。这样是为了性能考虑的
但是当你改变其中一个的时候,另一个却不会因此而改变
因为String被设计成"不可变的";
----------------解决方案--------------------------------------------------------

谢谢!我明白了


----------------解决方案--------------------------------------------------------
关键在于是否生成对象
----------------解决方案--------------------------------------------------------
String s1="abc";

String s2=new String("abc");

System.out.println(s1==s2);

这样应该是 false了吧

System.out.println(s1.equals(s2))
还是true吧?


----------------解决方案--------------------------------------------------------
那当然,你用了new就是告诉编译器,我要new一个对象,而不是内存里面有的

----------------解决方案--------------------------------------------------------
分析的很透彻
----------------解决方案--------------------------------------------------------
  相关解决方案