总结:
1)对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;
如果作用于引用类型的变量,则比较的是所指向的对象的地址
2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量
如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;
诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。
例:
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
int n=3;
int m=3;
System.out.println(n==m);
String str = new String("hello");
String str1 = new String("hello");
String str2 = new String("hello");
System.out.println(str1==str2);
str1 = str;
str2 = str;
System.out.println(str1==str2);
}
}
输出结果为 true false true
本文详细解析了Java中==运算符与equals方法在比较基本数据类型与引用类型时的区别。==用于比较基本数据类型的值是否相等,或引用类型变量指向的对象地址是否相同;而equals方法默认比较对象地址,但在String等类中被重写以比较对象内容。
2万+

被折叠的 条评论
为什么被折叠?



