日期:2014-05-20 浏览次数:20757 次
String s1="m"; String s2="m";
------解决方案--------------------
System.out.println(s3.equals(s4));
楼主可以试试这个
运行是true
------解决方案--------------------
s3 , s4是指向两个不同的地址
String s3=(s1+s2).intern();
String s4=(s1+s2).intern();
System.out.println(s3==s4); //则是true
看看http://topic.csdn.net/u/20090519/18/7b8cf7ef-bc06-4d26-8a2c-692eb0562231.html
------解决方案--------------------
字符串得运算都是在堆中进行得,所以是两个不同得地址
但他们得值都是指向字符串常量池中,所以他们得值是相同得
==是比较他们得内存地址得