java.lang.System.identityHashCode()是用于为默认方法hashCode()返回的任何给定对象返回相同哈希码的方法。同样,对于每个具有空引用的哈希码,将返回零。
要记住的要点:
- 默认情况下,每个类都隐式或显式提供hashCode()方法
- 哈希码通常是从任何对象生成的数字,它允许在哈希表中非常快速地存储或检索对象。
- 在Java中,默认情况下,hashCode()是本机方法,这意味着当直接在JVM的本机代码中实现时,该方法具有修饰符“本机”。
- 用于将存储在类实例中的所有数据摘要为单个哈希值,即32位有符号整数。
用法:
public static int identityHashCode(Object x)
参数:参数x属于Hash类型,是指需要计算的hashCode。
返回值:此方法返回hashCode。
以下程序说明了java.lang.System.identityHashCode()方法的使用。
程序1:
// Java program to demonstrate working
// of java.lang.System.identityHashCode() method.
import java.lang.*;
import java.io.*;
public class SystemCode1 {
public static void main(String[] args) throws Exception
{
File filename1 = new File("Welcome");
File filename2 = new File("Welcome");
File filename3 = new File("Geek");
File filename4 = new File("World");
// Returns the HashCode
int returnvalue1 = System.identityHashCode(filename1);
System.out.println(returnvalue1);
// Returns different HashCode for same filename
int returnvalue2 = System.identityHashCode(filename2);
System.out.println(returnvalue2);
// Returns the HashCode
int returnvalue3 = System.identityHashCode(filename3);
System.out.println(returnvalue3);
// Returns the HashCode
int returnvalue4 = System.identityHashCode(filename4);
System.out.println(returnvalue4);
}
}
输出:
589431969 1252169911 2101973421 685325104
说明:
在上述程序中,即使对象具有相同的名称,也会从对象生成不同的哈希码或数字。像这里一样,我们可以看到前两个术语相同,即“Welcome”,但是我们有两个不同的值,分别是
- 589431969
- 1252169911
分别用于第一次和第二次欢迎
程序2:
// Java program to demonstrate working
// of java.lang.System.identityHashCode() method.
import java.lang.*;
import java.io.*;
public class SystemCode2 {
public static void main(String[] args) throws Exception
{
File filename1 = new File("10");
File filename2 = new File("shyam");
File filename3 = new File("s12");
File filename4 = new File("s12");
// Returns the HashCode
int returnvalue1 = System.identityHashCode(filename1);
System.out.println(returnvalue1);
// Returns the HashCode
int returnvalue2 = System.identityHashCode(filename2);
System.out.println(returnvalue2);
// Returns different HashCode for same filename
int returnvalue3 = System.identityHashCode(filename3);
System.out.println(returnvalue3);
// Returns different HashCode for same filename
int returnvalue4 = System.identityHashCode(filename4);
System.out.println(returnvalue4);
}
}
输出:
589431969 1252169911 2101973421 685325104
相关用法
- Java Java.util.Collections.disjoint()用法及代码示例
- Java Java lang.Long.byteValue()用法及代码示例
- Java Java lang.Long.highestOneBit()用法及代码示例
- Java Java lang.Long.numberOfLeadingZeros()用法及代码示例
- Java Java.util.Collections.rotate()用法及代码示例
- Java Java lang.Long.lowestOneBit()用法及代码示例
- Java Java lang.Long.numberOfTrailingZeros()用法及代码示例
- Java Java lang.Long.builtcount()用法及代码示例
- Java Java lang.Long.reverse()用法及代码示例
- Java Clock tickMinutes()用法及代码示例
- Java Clock withZone()用法及代码示例
- Java Map get()用法及代码示例
- Java Set add()用法及代码示例
注:本文由纯净天空筛选整理自ankita_chowrasia大神的英文原创作品 System.identityHashCode() Method in Java With Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。