当前位置: 技术问答>java相关
与刚才提问的string有一定关系的一个程序。没有看的,看过的都来看呀!!!
来源: 互联网 发布时间:2015-05-06
本文导语: class Z { public static void main(String[] args) { String s = new String("hello"); if (s == s+"world") System.out.println("AAA"); StringBuffer sb = new StringBuffer("hello"); if (sb == sb.appe...
class Z {
public static void main(String[] args) {
String s = new String("hello");
if (s == s+"world")
System.out.println("AAA");
StringBuffer sb = new StringBuffer("hello");
if (sb == sb.append("world"))
System.out.println("BBB");
}
}
这个程序会输出"BBB" ,"AAA"是不会输出的,请大家再来看
public static void main(String[] args) {
String s = new String("hello");
if (s == s+"world")
System.out.println("AAA");
StringBuffer sb = new StringBuffer("hello");
if (sb == sb.append("world"))
System.out.println("BBB");
}
}
这个程序会输出"BBB" ,"AAA"是不会输出的,请大家再来看
|
neek2000(泥壳) 说的很清楚
|
if (s.equalto(s + "world"))
System.out.println("AAA");
System.out.println("AAA");
|
==是比较内存地址的,
s 和s+"world"的内存地址不同
sb前后都是一个sb
s 和s+"world"的内存地址不同
sb前后都是一个sb