java Returns 对象中的 valueOf() 但为什么哈希码不存在?

valueOf() in java Returns Object But why hashcode is not there?

API 用于 Integer.valueOf("123") returns 一个对象.. 所以如果我正在写这个

System.out.println(Integer.valueOf("456"));System.out.println(String.valueOf(256));

这些应该给我对象的哈希码,但它打印的是简单值 456 和 256。

所以谁能解释一下为什么我得到的不是哈希码而是值

谢谢:)

IntegerString 覆盖 toString(),这就是为什么您没有获得 Object.

的默认实现

字符串的 toString :

public String toString() {
    return this;
}

整数的 toString :

public String toString() {
    return String.valueOf(value);
}

因为 IntegerString 覆盖了 toString() 方法。

还有Integer的hashCode就是它的int值:

/**
 * Returns a hash code for this {@code Integer}.
 *
 * @return  a hash code value for this object, equal to the
 *          primitive {@code int} value represented by this
 *          {@code Integer} object.
 */
public int hashCode() {
    return value;
}