==与equals的区别
Posted 非非是
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了==与equals的区别相关的知识,希望对你有一定的参考价值。
==比较两个对象在内存里是不是同一个对象,就是说在内存里的存储位置一致。两个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 s3 = new String(”abc”); String s4 = new String(”abc”); String s5 = “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基础(31):String的大小写转换分离成数组==与equals()的区别