== 和 equals

== 是用来比较两个值类型是否相等。两个值类型是否指向同一个内存地址。

equals(),这个方法被不同的对象重写了,在String里主要是比较两个字符串内容的是否相等。

public boolean equals(Object anObject) {
// 这句话没看懂  
// this 应该指的是当前这个字符串实例
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;
}

不等于

使用 !indexCombines.equals("") 而不是 indexCombines !=""

内存地址 / toString()

Java 语言中拿不到一个对象真正的内存地址。

但是一个对象如果没有重写toString()方法,打印出来[C@59f95c5d,这种东西是什么鬼?看一下文档注释:

返回代表这个对象的字符串。一般而言,toString方法返回一个在字面意义上代表这个对象的字符串。这个结果应当简洁(concise)但又能让阅读的人轻松获取到足表示信息(informative representation)。

建议所有的子类都覆盖这个方法。

这个toString 方法对 Object 类返回一个字符串,这个字符串由对象的实例类的名称、@符号和代表对象哈希code的未指定的16进制组成。换而言之,这个方法返回的字符串等同于对象的值:

getClass().getName() + '@' + Integer.toHexString(hashCode())

代表这个对象的字符串。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,263评论 1 44
  • Java.lang.Object 有一个hashCode()和一个equals()方法,这两个方法在软件设计中扮演...
    寇寇寇先森阅读 1,743评论 1 9
  • 关系操作符== 关系操作符== ,适用于所有的基本数据类型,同时也适用于对象。 == 用于基本数据类型,比较的是数...
    打铁大师阅读 1,329评论 0 1
  • 2017年7月,记毕业一周年。 2013年10月,我怀着兴奋又紧张的...
    Lee漠阅读 325评论 0 1