==
操作符专门用来比较两个变量的值是否相等。也就是用于比较变量所对应的内存中所存储的值是否相同。要比较两个基本类型数据或两个引用变量是否相同,只能用==操作符。
equals
如果一个引用指向的数据是对象类型的,则涉及两块内存了,对象本身占一块(堆),引用或变量占一块(栈)变量对应的内存所存储的数值就是对象所占用的那块内存的首地址。对于指向对象类型的变量,如果要比较两个变量是否同时指向同一个对象,这时候就需要用==来操作了。equals用于比较两个独立的对象的内容是否相同。
比如:String a = new String("foo");
String b = new String("foo");
两条new 语句创建了两个对象,然后用a,b 这两个变量分别指向了
其中一个对象,这是两个不同的对象,它们的首地址是不同的,即a
和b 中存储的数值是不相同的,所以,表达式a==b 将返回false,
而这两个对象中的内容是相同的,所以,表达式a.equals(b)将返回
true。