This is a question about String compare.The result is different if generate string with different way--one is using keyword "new",another isn't.Please help me answer:Why did this happen?What difference between these two way?Where does the string object store?Stack or heap?on the other hand,please correct my language error.
This is my program:
public class CompareString
{public static void main(String[] args)
{String string1=new String("good");
String string2=new String("good");//first way,generate string with "new",answer is "false".
//String string1="good";
//String string2="good";//second way,generate string without "new",answer is "true".
System.out.println("string1 equal string2 is:"+(string1==string2));
}
}
This is my program:
public class CompareString
{public static void main(String[] args)
{String string1=new String("good");
String string2=new String("good");//first way,generate string with "new",answer is "false".
//String string1="good";
//String string2="good";//second way,generate string without "new",answer is "true".
System.out.println("string1 equal string2 is:"+(string1==string2));
}
}
freedomRen (2004-01-26 18:14:00) |
首先可以知道的是==操作是引用比较 |
wen00000000 (2004-01-27 1:17:00) |
System.out.println("string1 equal string2 is:"+(string1.equals(string2))); |
sunruijia (2004-02-11 15:09:46) |
字符串比较应该用String的equals方法,用== 只是比较两个引用string1和string2是否指向同一个对象 |