今天在做程序过程中又遇到了Java中String内存的比较,后来经过测试才发现问题。后来自己就总结以前学习String内存的经验写了一个小程序。如果感兴趣的话,可以先自己写出结果来,看看自己能否写正确。
public class Test {
public static void main(String[] args) {
String a = "abc";
String b = new String(a);
String c = new String ("abc");
String d = "";
String f = new String("");
System.out.println(a == b);
System.out.println(a.equals(b));
System.out.println(a == c);
System.out.println(a.equals(c));
System.out.println(b == c);
System.out.println(b.equals(c));
System.out.println(d == f);
System.out.println(d =="");
System.out.println(f == "" );
System.out.println(d.equals(f));
}
}
以前找工作面试的时候出过这里面的题。正面临找工作的朋友们可以看看,并想想到底为什么结果是那样。对你以后编程会有帮助的。
结果在下面:
false
true
false
true
false
true
false
true
false
true