java hashCode()函数引用变量和对象

时间:2013-04-09 00:07:41

标签: java hashcode

例如,如果我创建一个A类型的对象,

A a = new A();

然后a是堆栈上的引用,指向堆上的A类型对象。 我的问题是,如果我调用a.hashCode(),将返回哪个哈希码,引用的哈希码或对象的哈希码? 如果它是对象的哈希码,我怎样才能获得引用的哈希码? 有人可以给我一些提示吗?

2 个答案:

答案 0 :(得分:4)

hashCode()只是一个非静态方法,就像任何其他非静态方法一样。它由A定义,或由AObject的基类定义,在最坏的情况下)。所有这一切都是在相关实例上调用方法。

  

如何获取引用的哈希码?

你不能,因为那没有意义。

答案 1 :(得分:0)

您可以通过调用

来获取引用的哈希码
<InkToolbar x:Name="inkToolbar1" x:FieldModifier="Public" Grid.Column="0" Grid.RowSpan ="2" Grid.ColumnSpan="2" InitialControls="None" TargetInkCanvas="{x:Bind inkCanvas}" HorizontalAlignment="Left" VerticalAlignment="Top" Orientation="Horizontal">
            <InkToolbarCustomToolButton x:Name="toggleButtonNewInk" Click="toggleButtonNewInk_Click">
                <SymbolIcon Symbol="Page2" ToolTipService.ToolTip="NewInk"/>
            </InkToolbarCustomToolButton>
</InkToolbar>

这就是java.util.IdentityHashMap等数据结构基于。