[英]Java object ID in jvm
在調試時,Eclipse中的對象值附近顯示了一個對象ID。
例如:28332是會話對象的ID。 另一個例子: waiting for: (id=101)
顯示在Debug面板中。 這些ID既不是哈希碼也不是System.identityHashCode
。
有誰知道 - 如何獲得this
對象的id?
我假設他們內部有一個IdentityHashMap<Object, Integer>
,為每個對象分配一個唯一的(但無意義的)整數。 這應該是Eclipse調試器的內部(不是對象具有的特殊id)。 你在問這個怎么樣?
編輯 :我會設置這樣的斷點(注意我不熟悉Eclipse):
System.identityHashCode(object)
。 System.identityHashCode(object) == <whatever number you saw at the previous step>
創建斷點。 這種情況很難停在錯誤的物體上。 或者,如果您感興趣的對象具有您可以使用的適當的toString()
表示,您也可以嘗試使用它而不是System.identityHashCode(object)
。 在所有情況下,您不必依賴Eclipse的內部對象id,而是捕獲可以從對象本身派生的id
(或幾乎)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.