==:
1)比较基本数据类型时,比较的是值是否相等。
2)比较应用数据类型时,比较的是应用地址是否相等.
equals:
属于java.lang.object中的方法,如果该方法没有被重写过默认也是==,
具体要看定义类中是否有重写equals方法,有重写地话比较的是值是否相等,一般string类,Date类都有重写equals()方法;
可以参考以下例子:
//自动类型转换, 会将it(int) -->it(float)
int it=65;
float fl = 65.0f;
System.out.println("65和65.0f是否相等?"+(it==fl)); //true
System.out.println("-----------------------------------------------");
char ch1 = 'A';
char ch2 = 12;
System.out.println("65和'A'是否相等? "+(it==ch1)); //ture
System.out.println("12和ch2是否相等? "+(12 == ch2)); //true
System.out.println("-----------------------------------------------");
String str1 = new String("hello");
String str2 = new String("hello");
//比较引用地址
System.out.println("str1和str2是否相等?"+(str1==str2)); //false
System.out.println("---------------------------------------------------");
//比较的值
System.out.println("str1是否equals str2?"+str1.equals(str2)); //true
//Incompatible operand types String and Date
// System.out.println("hello" ==new java.util.Date()); 编译报错:两种类型不同的数据不能进行比较。
希望能够帮助到您!