//hashCode() 
 //返回该对象的哈希码值。
结果
96354
96354
 这样说来s1 和s 是同一对象
  但new  的应该是2个不同对象
  不知道我那里在错了 请指正!
public class HashcodeDemo
{
public static void main(String args[])
{
String s = new String ("abc");
String s1 = new String ("abc");
System.out.println(s.hashCode());
System.out.println(s1.hashCode());
System.out.println(s==s1);
}
}

解决方案 »

  1.   

    hashCode相等顶多说明它们s.equlas(s1) 并不能等同于s==s1
      

  2.   

    Api 上 说//返回该对象的哈希码值。
      

  3.   

    源代码里面string的hashcode是根据string包含的字符进行计算而得到
    所以equals是一样
    string的equals是比较内容
      

  4.   

    还有
       我有看到
      能推出 equals 为真   hashCode一定为真
     能推出 hashCode 为真 但equals不一定为真 
       最好用简单的实例证明!
       
      

  5.   

    equal 与 == 是一样的
    hascode相同只表示equal相等,与==没关系的
      

  6.   


    打错,equal 与 == 是不一样的
      

  7.   

    hashCode和equals有关系吗,和==有关系吗?
    ==是比较内存地址,不受人为影响。equals和hashCode都是自定义规则,想怎么算就怎么算!
    唯一能确定的就是,如果o1==o2是true,那o1.equals(o2)和o1.hashCode()==o2.hashCode()一定是true。
      

  8.   

    如果想要,可以定义一个class,让所有对象的hashCode都不相同,所有的对象都不equals。class Hash {
      private static long id = 0;
      
      public int hashCode() {
        return id++;
      }  public boolean equals(Object o) [
        return false;
      }
    }
      

  9.   

    如果a.equals(b) == true,那么肯定有:a.hashCode() == b.hashCode()。
    如果a.hashCode() == b.hashCode(),则不一定有:a.equals(b) == true
      

  10.   

    一般hashCode都用于那些地方! 
      

  11.   

    最原始的equal与==是一样的,但是在string类中对equal方法进行了重写。建议看看java源代码。