首页 分享 Java 中的“==”和equals()方法比较总结。

Java 中的“==”和equals()方法比较总结。

来源:花匠小妙招 时间:2024-11-02 06:28

1. "==" 的用法:
    1)    对于原生数据类型来说,比较的是左右两边的值是否相等。
    2)    对于引用类型来说,比较左右两边的引用是否指向同一个对象,或者说左右两边的引用地址是否相同。(其实也是值是否相等,因为引用类型的地址是数字表示的)
需要注意的是要把‘==’和equals()方法区分开

2. equals()方法
    1)    对于String类的equals()方法来说,它对Object类中的equals方法进行了重写,它是判断当前字符串与传进来的字符串的内容是否一致。源码如下:

public boolean equals(Object anObject) {

if (this == anObject) {

return true;    

    }

if (anObject instanceof String) {

String anotherString = (String)anObject;    

int n = count;

if (n == anotherString.count) {

char v1[] = value;

char v2[] = anotherString.value;

int i = offset;

int j = anotherString.offset;

while (n-- != 0) {

if(v1[i++] != v2[j++])

return false;

            }

return true;

        }

    }

return false;  

}

    2)    对于Object类来说,equal()方法就是通过==实现的。源码如下:

public boolean equals(Object obj) {

return (this == obj);

}

两者比较举例:

public class StringTest {

public static void main(String[] args) {

String str = new String("aa");

String str2 = new String("aa");

        System.out.println(str.equals(str2));

String str3 = "aa";

String str4 = "aa";

        System.out.println(str3.equals(str4));

        System.out.println("-----------------");

Object object = new Object();

Object object2 = new Object();

        System.out.println(object.equals(object2));

        System.out.println(object.equals(object));

    }

}

最后运行的结果是:前两个都是true(因为他们是String类型的,重写了.equals方法),第三个是false(因为是Object类型比较的是对象的地址是否相等),最后一个是true(同一个对象,内存地址肯定是相同的)

关于Object类的equals方法的特点
a)    自反性(reflexive):x.equals(x)应该返回true
b)    对称性(symmetric):x.equals(y)为true,那么y.equals(x)也为true。
c)    传递性(transitive):x.equals(y)为 true并且y.equals(z)为true,那么x.equals(z)也应该为true。
d)    一致性(consistent):x.equals(y)的第一次调用为true,那么x.equals(y)的第二次、第三次、第n次调用也应该为true,前提条件是在比较之间没有修改x也没有修改y。
e)    对于非空引用x,x.equals(null)返回false。

转载于:https://my.oschina.net/ChinaHaoYuFei/blog/706628

相关知识

借花献佛!朋友干了5年整的Java面试官,给我分享了一份面试官最爱问的Java面试题
菜根花小宝贝
==和equals#程序员
Java 并没有死!那么,Java这朵“永生花”是怎么永葆青春的呢?
JAVA编程艺术
我的2015下半年总结
基于Java网上鲜花销售系统的设计与实现
使用java编写一只玫瑰花
Java案例
怎么用java代码生成玫瑰花

网址: Java 中的“==”和equals()方法比较总结。 https://www.huajiangbk.com/newsview325847.html

所属分类:花卉
上一篇: 木兰花市周年庆隆重开幕,365天
下一篇: 2018年超星园林花卉学章节测试

推荐分享