zoukankan      html  css  js  c++  java
  • 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;
    }
    解释:
    anObject instanceof String;
    首先上边的语句,先判断anObject是不是String类的一个实例,如果是运行下边的语句
    String anotherString = (String)anObject;
    字符串是一个引用数据类型,本身是String个对象,
    在这里把传进来的anObject这个对象,赋给anotherString (需要类型转换)
    他当然可以调用String类里的成员,你说的count、value、offset都是String的成员
    int n = count;//这个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;//在遍历的过程中如果有不同的就返回false;
    } //你如果用过equals这个方法应该知道它返回的是boolean值
    return true;
    }
    }
    return false;
    }
  • 相关阅读:
    盒模型
    DTD
    JS 中的 __proto__ 、prototype、constructor
    ES 5 中 判断数组的方法
    js keyup、keypress和keydown事件
    webpack 安装 url-loader 模块后,图片地址展示错误问题
    前端展示PDF内容
    对象的深拷贝
    IE 11 中不知promise 的 finally 方法
    js判断一个字符串是否为纯数字组成
  • 原文地址:https://www.cnblogs.com/aishangtaxuefeihong/p/4903490.html
Copyright © 2011-2022 走看看