==是指针判断,是否相同要看运气,两个变量指向同一地址时才会相等
==比较两个对象在内存里是不是同一个对象,就是说在内存里的存储位置一致。两个String对象存储的 值是一样的,但有可能在内存里存储在不同的地方.
==比较的是引用而equals方法比较的是内容。public boolean equals(Object obj)这个方法是由object对 象提供的,可以由子类进行重写。默认的实现只有当对象和自身进行比较时才会返回true,这个时候和==是等价的。String, BitSet, Date,和File都对equals方法进行了重写,对两个String对象而言,值相等意味 着它们包含同样的字符序列。对于基本类型的包装类来说,值相等意味着对应的基本类型的值一样。
public class EqualsTest {` public static void main(String[] args) {` String s1="abc"; String s2=s1; String s5="abc" String s3 =new String("abc"); s4=new String("abc"); System.out.printlncomparison : " + (s1 == s5)); System.out.printlncomparison : " + (s1 == s2)); System・out・println("Using equals method : " + s1・equals(s2)); System.out.printlncomparison : " + s3 == s4); System・out・println("Using equals method : " + s3・equals(s4)); } }
结果:
==comparison : true
==comparison : true
Using equals method : true
false
Using equals method :true