What does the @ next to a Class instance mean?

Issue

I have a question while using IntelliJ IDEA, Android Studio Debug.

What does the number next to @(at) mean? No matter how hard I look for development references, I can’t find them.

There are a number in brackets and a number without brackets. They have different numbers. I am curious about the difference

I guess it is the unique hash value of the class instance, but I wonder what it means more accurately.

enter image description here

Solution

This is an object id.

It is controlled by the Settings (Preferences on macOS) | Build, Execution, Deployment | Debugger | Data Views | Java | Show | Object id option.

As pointed in the comment to another answer the objectID is:

Uniquely identifies an object in the target VM. A particular object will be identified by exactly one objectID in JDWP commands and replies throughout its lifetime (or until the objectID is explicitly disposed). An ObjectID is not reused to identify a different object unless it has been explicitly disposed, regardless of whether the referenced object has been garbage collected. An objectID of 0 represents a null object. Note that the existence of an object ID does not prevent the garbage collection of the object. Any attempt to access a a garbage collected object with its object ID will result in the INVALID_OBJECT error code. Garbage collection can be disabled with the DisableCollection command, but it is not usually necessary to do so.

Answered By – Andrey

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published