欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java String中的==和hashCode()方法

程序员文章站 2022-03-15 20:33:59
...

String 类已经重写了Object的hashCode方法了。 但是在HashCode默认情况下表示的是内存地址。注意: 如果两个字符串的内容一致,那么返回的hashCode 码肯定也会一致的。

public class Demo4 {
 	public static void main(String[] args) {
  		String str1 = "hello";
  		String str2 = new String("hello");
  		System.out.println("两个是同一个对象吗?"+(str1==str2));
  		System.out.println("str1的hashCode:"+ str1.hashCode());
  		System.out.println("str2的hashCode:"+ str2.hashCode());
	  /* 
	   * HashCode默认情况下表示的是内存地址,
	   * String 类已经重写了Object的hashCode方法了。  
	    注意: 如果两个字符串的内容一致,那么返回的hashCode 码肯定也会一致的。 
	   */
	}
}
  public int hashCode() {  //String重写hashCode()源码
        int h = hash;
        if (h == 0 && value.length > 0) {
            char val[] = value;
            for (int i = 0; i < value.length; i++) {
                h = 31 * h + val[i];
            }
            hash = h;
        }
        return h;
    }
相关标签: java