@は、オブジェクトのカウント数は次のとおりです。つまり、このメソッドは、の値に 等しい文字列を返します。したがって、@ 1012は、アプリケーションの開始以降に作成された1012番目のオブジェクトを意味します。
IDハッシュコードではありません。ここで
は、いくつかの証拠である:(私は実際には知らないが、私はそれを観察するので、私はこれを言う)
public static void main(String [] args) throws Throwable {
Object object = new Object();
Object object1 = new Object();
Integer foo = new Integer(5);
Object object2 = new Object();
String str = new String("bar");
System.out.println("code :" + System.identityHashCode(object));
RuntimeException exception = new RuntimeException();
exception.printStackTrace(); //put breakpoint here
}
出力: コード:789451787 コード:[email protected] IntelliJのデバッガから
789451787 = 2f0e140bところで...
は出力:
static = org.boon.core.MyClass
args = {java.lang.String[0]@**97**}
object = {[email protected]**98**}
object1 = {[email protected]**99**}
foo = {[email protected]**100**}"5"
object2 = {[email protected]**101**}
str = {[email protected]**102**}"bar"
exception = {[email protected]**103**}"java.lang.RuntimeException"
私は経験的にこのことを知っているが、私は、実際の実装を知らないが、私はそれがこのような問題に関連していると思う:
as3: meaningful object identification while debugging。
Opps ..ここでこれを行うつもりだった...オブジェクトが作成されたときの割り当てカウント番号のように見えます。たくさんのオブジェクトを作成すると、それらが順次インクリメントされることがわかります。これは、スレッドごと、またはデバッグ実行ごとに行うことができますが、わかりません。私はまだこの文書を見つけることができませんでした...。 – RickHigh