zoukankan      html  css  js  c++  java
  • equals与==的区别

    首先明确一点,equals是方法,==是操作符。

     

    1. 如果比较的是基本数据类型:

      只讨论==,因为equals是不存在的,因为java中基本数据类型不能调用method的。

     

    2. 如果比较的是引用类型:

      ==:比较两个引用是不是指向同一个对象实例,即相同的地址。

      equals:equals方法是Object类的方法,默认是直接调用==来实现。如果没有被重写,那么调用equals与==没有区别。

    但是,在一些类库中这个方法被覆盖了,比如八大基本数据类型的包装类和String类,它们的equals方法比较的是值是否相同,此时的equals就与==有区别了。

    我们自己也可以根据需要,来重写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;
    }

     

  • 相关阅读:
    Unity Shader _Time
    常见纹理压缩格式
    U3D Transform组件
    java计算文件32位md5值
    Andoid 利用ndk-stack定位崩溃代码
    glsl计算sprite的亮度饱和度对比度
    Android项目文件结构
    Android Studio文件目录介绍
    Struts2配置dtd约束
    java系列--JSP的属性和内置对象
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/7889585.html
Copyright © 2011-2022 走看看