例如,如果我创建一个A类型的对象,
A a = new A();
然后a是堆栈上的引用,指向堆上的A类型对象。 我的问题是,如果我调用a.hashCode(),将返回哪个哈希码,引用的哈希码或对象的哈希码? 如果它是对象的哈希码,我怎样才能获得引用的哈希码? 有人可以给我一些提示吗?
答案 0 :(得分:4)
hashCode()
只是一个非静态方法,就像任何其他非静态方法一样。它由A
定义,或由A
(Object
的基类定义,在最坏的情况下)。所有这一切都是在相关实例上调用方法。
如何获取引用的哈希码?
你不能,因为那没有意义。
答案 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等数据结构基于。