微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java的equals和==的比较示例

这篇文章主要介绍了java的equals和==的比较示例,需要的朋友可以参考下

先看例子:

复制代码 代码如下:

package com.amos;

/**

 * @ClassName: EqualTest

 * @Description:Java中的equal和==的比较

 * @author: amosli

 */

public class EqualTest {

    public static void main(String[] args) {

        int a = 1;

        float b = 1.0f;

        System.out.println(a == b);// true

        String c = new String("hi_amos");

        String d = new String("hi_amos");

        System.out.println(c == d);// false

        System.out.println(c.equals(d));// true

    }

}

Java中判断两个变量是否相等主要有两种判方式:一种是利用==运算符,另一种是利用equals方法来判断两者是否相同.

1).当使用==来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数值类型,不要求数据类型严格相同,只要两个变量的值相等,那么将返回true.

2).如果对于两个引用类型变量,它们必须指向一个对象时,==判断才会返回true.==不可用于比较类型上没有父子关系的两个对象.

如上可以解释同样一new String时,==判断两者是否相同返回的是false,而equals返回的是true.

equals方法针对的String类,查看其源码,可以发现其实equals只能算是==的一种特例.如下面源码所示:

复制代码 代码如下:

public boolean equals(Object anObject) {

        if (this == anObject) {

            return true;

        }

        if (anObject instanceof String) {

            String anotherString = (String) anObject;

            int n = value.length;

            if (n == anotherString.value.length) {

                char v1[] = value;

                char v2[] = anotherString.value;

                int i = 0;

                while (n-- != 0) {

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

                            return false;

                    i++;

                }

                return true;

            }

        }

        return false;

    }

equals方法实际上一开始就调用了==判别式,然后再判断其进一步值是否正确

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐