== 是比较两个对象的地址的,equals 是比较值的 我是这样理解的

解决方案 »

  1.   

    rs.getString()返回的是一个字符串吗?
      

  2.   

    一个对象名实际是一个指针     
      ==比较的是两个指针是否指向同一个地址     
      equals比较的是两个指针指向的地址中的内容     
        
      JAVA中的变量分为基本类型和对象类型,基本类型包括int,long,char之类的变量,在判断这类变量是否相等时,使用==,而在对象之间进行比较时==就不行了,如果两个对象使用==比较返回true的话,说明它们指向的是同一个引用,这样的比较没有意义,所以对象之间的比较用从Object对象里继承来的equals()方法来进行,Object中的equals()方法不做任何实际比较,只是符合如下规律:1.可逆(reflexive)   例x.equals(x)返回true   2.对称(symmetric)   例如果x.equals(y)返回true,则y.equals(x)返回true   3.传递(transitive)   例如果x.equals(y)返回true,y.equals(z)返回true,则x.equals(z)返回true   4.持续(consistent)   5.非空     
      所有对象实现的equals()方法都满足这些条件,而不同的对象比较的方法则不相同,例如String对象的equals()就是比较两个自符串每个自符是否一致来实现的,因此如果是自己创建的对象,如果想要比较的话,就应该自己实现equals()方法.