`

java中hashcode

阅读更多
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

public class Test extends Date {

	public static void main(String[] args) {
		Test t = new Test();
		t.test();
		int hashcode = t.hashCode();
		System.out.println("类的hashcode:" + hashcode);

		System.out.println(t); // 调用父类的toString方法,显示的是时间Tue Sep 21 15:07:35
								// GMT+08:00 2010

		// Object的tostring
		System.out.println(t.getClass().getName() + '@'
				+ Integer.toHexString(t.hashCode())); // Test@331e74c6

		String h = "2";
		// String的hashcode计算方法:s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1],n为长度
		System.out.println("字符串的‘2’ hashcode:" + h.hashCode()); // 50

		String s1 = new String("zhaoxudong");
		String s2 = new String("zhaoxudong");
		System.out.println(s1 == s2);// false
		System.out.println(s1.equals(s2));// true
		System.out.println(s1.hashCode());// s1.hashcode()等于s2.hashcode()
		System.out.println(s2.hashCode());
		Set hashset = new HashSet();
		hashset.add(s1);
		hashset.add(s2);
		System.out.println("hashset的大小:" + hashset.size()); // 1,set不能重复

	}

	public void test() {

		String s1 = "a";
		String s2 = s1 + "b";
		String s3 = "a" + "b";
		System.out.println(s2 == "ab"); // false
		System.out.println(s3 == "ab"); // true

		String s = "a" + "b" + "c" + "d";
		System.out.println(s == "abcd"); // true

		System.out.println("子类super.getClass().getName():"
				+ super.getClass().getName()); // getClass为final
		System.out.println("父类:" + getClass().getSuperclass().getName()); // 父类:java.util.Date
	}

}


false
true
true
子类super.getClass().getName():Test
父类:java.util.Date
类的hashcode:-1629860717
Tue Oct 12 13:12:08 GMT+08:00 2010
Test@9eda4c93
字符串的‘2’ hashcode:50
false
true
-967303459
-967303459
hashset的大小:1

总结:两个对象相等,它们的hashcode一定相同,反之不一定
分享到:
评论

相关推荐

    java中Hashcode的作用.docx

    "Java中Hashcode的作用" Hashcode是Java编程语言中一个非常重要的概念,它在equals方法中扮演着关键角色。在Java中,每个对象都具有一个独特的Hashcode,它可以用来标识对象的身份。但是Hashcode是什么?它是如何...

    java中hashcode()和equals()的详解

    在Java编程语言中,`hashCode()`和`equals()`方法是对象身份验证的关键组成部分,它们主要用于对象的比较和哈希表(如HashMap、HashSet等)的操作。理解这两个方法的工作原理对于编写高效和可靠的代码至关重要。 ...

    java中hashcode和equals的详解.pdf

    Java 中的 hashCode 和 equals 方法详解 本文详细介绍了 Java 中的 hashCode 和 equals 方法,探讨了这两个方法的作用、实现机制和使用场景。通过对 hashCode 和 equals 方法的深入分析,我们可以更好地理解 Java ...

    java 中HashCode重复的可能性

    Java 中HashCode重复的可能性 Java 中的 HashCode 重复可能性是 Java 开发中一个常见的问题。 HashCode 是 Java 中一个重要的概念,它用于标识对象的唯一性。然而,Hash Code 有可能重复,这会导致程序出错。下面...

    深入理解Java中HashCode方法

    深入理解Java中HashCode方法 Java中的hashCode方法是每个类都需要实现的重要方法之一,它的主要作用是将对象的数据转换为一个32位的整数,用于标识对象的唯一性。在Java的所有类中,Object类是最顶层的父类,它定义...

    java中hashcode()和equals()方法详解

    ### Java中`hashCode()`与`equals()`方法详解 #### 前言 在Java编程语言中,`hashCode()`和`equals()`方法是非常重要的概念,它们不仅对于深入理解Java内存管理至关重要,也是实现自定义类的关键部分之一。本文将...

    Java 中HashCode作用_动力节点Java学院整理

    Java 中 HashCode 作用 HashCode 在 Java 中扮演着非常重要的角色,它对于一个对象的重要性不言而喻。本文将详细介绍 HashCode 的作用和重要性,为读者提供一个深入了解 HashCode 的机会。 HashCode 的作用 在 ...

    java中hashcode()和equals()和==的详解

    有许多人学了很长时间的Java,但一直不明白hashCode...首先,想要明白hashCode的作用,你必须要先知道Java中的集合。总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。你知道它们的区别吗?

    java中hashcode()和equals()的详解.docx

    ### Java中`hashCode()`与`equals()`方法详解 #### 前言 在Java编程语言中,`hashCode()`和`equals()`方法是非常重要的概念,它们主要用于处理对象的唯一标识和对象之间的相等性判断。正确地实现这两个方法对于确保...

    浅谈Java中hashCode的正确求值方法

    浅谈Java中hashCode的正确求值方法 hashCode是一种常用的散列函数,在Java中它是一个对象的整数表示,用于标识对象的唯一性。在Java中,每个对象都有一个hashCode,这个hashCode可以通过hashCode()方法来获取。...

    Java中hashCode的作用

     在Java应用程序执行期间,在同一对象上多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是对象上equals比较中所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需...

    详解Java中hashCode的作用

    在Java编程语言中,`hashCode()`方法是一个非常重要的组成部分,特别是在使用散列数据结构如`HashTable`, `HashMap`, `HashSet`等时。`hashCode()`的主要作用是为对象生成一个唯一的整数值,这个值用于确定对象在...

    java中hashCode、equals的使用方法教程

    在Java编程语言中,`hashCode()` 和 `equals()` 方法对于对象的比较和处理至关重要,尤其在集合类(如Set和Map)中。这两个方法都源自`java.lang.Object`类,因此所有的Java类都默认继承了它们。理解并正确地重写这...

    Java中hashCode和equals方法的正确使用

     hashCode()和equals()定义在Object类中,这个类是所有java类的基类,所以所有的java类都继承这两个方法。  使用hashCode()和equals()  hashCode()方法被用来获取给定对象的整数。这个整数被用来确定对象被...

    Java重写equals同时需要重写hashCode的代码说明

    Java重写equals同时需要重写hashCode的代码说明,以及如何重写hashCode方法,此代码演示按照effective java书籍说明的重写思路。代码中演示了使用集合存储对象,并且对象作为key,需重写equals和hashCode.

    Java_重写equals()和hashCode()

    在Java编程语言中,`equals()` 和 `hashCode()` 方法是对象的基本组成部分,它们在很多场景下都发挥着至关重要的作用。这两个方法与对象的相等性比较和哈希表(如HashMap、HashSet)的运作紧密相关。这篇博客将深入...

Global site tag (gtag.js) - Google Analytics