举一反三,根据不同情况为你解释其比较方式的不同,具体如下:
|--对于基本数据类型
|--只有"==",没有equals()方法,比较两者内容是否相等
|--对于字符串
|--String类不是基本数据类型
|--"=="比较两者内存地址是否相等,equals()方法是重写了Object类中的equals()方法,比较两者内容是否相等.
|--字符串被存储在方法区内的常量池中,只要值相等其指的都是同一个内存地址,"=="和equals()方法的结果无区别(源代码中有所体现)
|--对于对象实例
|--"=="比较两者内存地址是否相等,equals()方法是重写了Object类中的equals()方法,比较两者内存地址是否相等,但通常我们会自己重写equals()方法,将其改变为比较两者内容是否相等(String类的equas()就是这个!)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总结:具体"=="与equals()方法所比较的是什么并非固定,而是根据不同情况进行区分的,千万不要一概而论!!!
LZ要是还不明白,请看下这个帖子:
希望能帮到你! |