==:它是比较两个字符串的地址是否相同
equals():它是比较两个字符串的内容是否相同,这只是针对于String类而言
示例代码如下:
String com1 = new String("asd");
String com2 = new String("asd");
if(com1==com2){
System.out.println("com1=====com2");
}
if(com1.equals(com2)){
System.out.println("com1 equals com2");
}
String cmp1 = "asd";
String cmp2 = "asd";
if(cmp1==cmp2){
System.out.println("cmp1=====cmp2");
}
if(cmp1.equals(cmp2)){
System.out.println("cmp1 equals cmp2");
}
输出结果如下:
com1 equals com2
cmp1=====cmp2
cmp1 equals cmp2
new出来的都是分配新的内存空间,其地址不会相同
直接引用相同的字符串,其地址也会相同。
-----------------------------------------------------------
当自定义的类相比较时,需要自己去实现equals()方法。而Object类的equals()方法默认是对地址进行比较的。
如:
MyString com1 = new MyString("asd");
MyString com2 = new MyString("asd");
if(com1.equals(com2)){
System.out.println("com1 equals com2");
}else{
<pre name="code" class="java"> System.out.println("com1 is not equals com2");
}