如下图所示:
c1 Class<T> (com.horstmann.corejava.Employee) (id=22)
我很好奇这个id究竟意味着什么?我可以实际修改它吗?我想知道一些相关的事情。
答案 0 :(得分:0)
这是一个不透明的内部(对JVM)标识符,对每个对象都是唯一的。您可以将其视为&#34;句柄&#34;对于实例。
您无法更改它,并且每次运行代码时,对于给定的对象实例,它可能会有所不同。
当您在调试器中单步调试代码并拥有许多类的实例时,它会很有用。您可以查看两个实例,并确定它们是否实际上是通过不同引用访问的同一实例。
答案 1 :(得分:0)
这样想。比如说,你有这个类的多个实例。在调试的情况下,此id
可以是唯一标识符。
id
由eclipse调试器任意分配。我最好的猜测是eclipse有某种类型的地图,比如IdentityHashMap<Object, Integer>
,为每个对象分配一个唯一的整数。