==对基本数据类型比较的是值,对引用类型比较的是地址
equals()比较的是对象是否是同一个对象,即两个对象的地址是否一致;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int n=3;
int m=3;
String str1 = "hello";
String str2 = "hello";
System.out.println("基本数据类型的 == 判定:"+(n==m));//判断数据
System.out.println("引用数据类型的 == 判定"+(str1==str2));//判断地址
String str3 = new String("hello");
String str4 = new String("hello");
System.out.println("对象的 == 判定:"+(str3 == str4));//判断地址
System.out.println("对象的 equals() 判定"+str3.equals(str4));//判断数据
str4 = str3;
System.out.println("对象赋值后的 == 判定"+( str3 == str4 ) );
System.out.println("对象的 equals() 判定"+str3.equals(str4));
}
}
结果如下:
基本数据类型的 == 判定:true
引用数据类型的 == 判定true
对象的 == 判定:false
对象的 equals() 判定true
对象赋值后的 == 判定true
对象的 equals() 判定true