public static void main(String[] args) {
String s1="m";
String s2="n";
String s3=s1+s2;
String s4=s1+s2;
System.out.println(s3==s4);
System.out.println(s3);
System.out.println(s4);
}
上述程序,为何System.out.println(s3==s4); 运行是false.这两个字符串的地址一是一样的?
String s1="m";
String s2="n";
String s3=s1+s2;
String s4=s1+s2;
System.out.println(s3==s4);
System.out.println(s3);
System.out.println(s4);
}
上述程序,为何System.out.println(s3==s4); 运行是false.这两个字符串的地址一是一样的?
解决方案 »
- 客户端byte[]通过webservice写入txt中文乱码
- 小弟现在想做这么一个插件:
- 想找朋友一起开发类似Excel的java版电子表格,主要用于报表设计开发,愿意合作开发的加msn:[email protected]
- 各位itor,鄙人刚学完c++,感觉学的很扎实,现在想学习java,请推荐一些经典的入门教材,谢谢!!
- JPanel的字体设置问题。
- 请问大家用什么加壳软件保护自己开发的软件,哪一款加壳工具最好?
- 请教高手(超大整数)
- 我的Tomcat怎么运行不起来
- 我的数组中的数据如何显示成表格那种类型?
- 在JAVA编程思想第二章里提到的reference和object reference中文翻译是什么?
- 如何用java在对话框中加入图片?
- 请问有没有人用过JColorChooser类?能不能给个简单的例子,说明怎样用这个类
我猜,楼主是因为 String s1="m";
String s2="m";而s1==s2,所以才问的这个问题。
java有字符串常量池,像s3,s4使用字符串表达式赋值的,虽然内容一样,但是运算后产生新的对象赋给s3,s4,所以地址必然不同。
楼主可以试试这个
运行是true
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