Java中==与equals的区别
2016-11-10 19:22
232 查看
==比较两个对象在内存中是不是同一个对象,就是说在内存中存储位置一致。两个String对象存储的值是一样的,但有可能在内存里存储在不同的地方 .
==比较的是引用(内存地址),而equals方法比较的是内容。
public booleanequals(Object obj) 这个方法是由Object对象提供的,可以由子类进行重写。
默认的实现只有当对象和自身进行比较时才会返回true,这个时候和==是等价的。
String, BitSet, Date, 和File都对equals方法进行了重写,对两个String对象 而言,值相等意味着它们包含同样的字符序列。
对于基本类型的包装类来说,值相等意味着对应的基本类型的值一样。
==比较的是引用(内存地址),而equals方法比较的是内容。
public booleanequals(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”); String s4 = new String(”abc”); System.out.println(”== comparison : ” + (s1 == s5)); System.out.println(”== comparison : ” + (s1 == s2)); System.out.println(”Using equals method : ” + s1.equals(s2)); System.out.println(”== comparison : ” + s3 == s4); System.out.println(”Using equals method : ” + s3.equals(s4)); } }
== comparison : true == comparison : true Using equals method : true false Using equals method :true
相关文章推荐
- 看到一篇文章《==与equals()的区别》(java)
- java中的equals()与==的区别
- java中equals与==的区别
- java中两个字符串“Equals”和“==”的区别
- java中equals和==的区别
- JAVA中的equals和==的区别
- java :两个对象相等equals和==的区别
- Java ==与equals()的区别
- JAVA中的equals和==的区别
- java中equals方法和“==”的区别:(转)
- 再说java中的equals和==的区别
- java语言中的两种比较 == 与 equals的区别
- java中“==”与“equals”的区别
- Java中关于==和equal的区别 以及equals()方法重写
- Java equals 和== 区别
- Java 中== 和 equals 的区别
- Java中"equals"和"=="的区别
- java中“==”与“equals”的区别
- Java中== 与 equals的区别
- Java中"equals"和"=="的区别