equals用于比较两个对象里面的内容是否一致,==比较两个对象的内存地址是否一致。
【文件4.12】Operation11.java
1. String str1 = "Jack";
2. String str2 = "Jack";
3. String str3 = new String("Jack");
4. boolean boo1 = str1==str2; //true
5. boolean boo2 = str1==str3;//false
6. boolean boo3 = str1.equals(str3); //true
"Jack"为直接数。第1、2行直接赋值为Jack直接数,所以str1==str2或者str1.equals(str2)的结果都是true。str3使用new关键字重新分配了一个新的对象,所以str1==str3为比较内存地址,结果为false;但是两者的内容一样,所以str1.equals(str3)的结果为true。
建议在比较对象类型特别是String时使用equals方法,而不是使用==。