In der neuesten Android-Update (SDK 21), scheint es, dass zwei neue Variablen java.lang.Object wurden hinzugefügt:
private transient Class<?> shadow$_klass_;
private transient int shadow$_monitor_;
Ich bemerke, dass shadow$_monitor_
kurz in hashCode()
verwendet wird:
public int hashCode() {
int lockWord = shadow$_monitor_;
final int lockWordMask = 0xC0000000; // Top 2 bits.
final int lockWordStateHash = 0x80000000; // Top 2 bits are value 2 (kStateHash).
if ((lockWord & lockWordMask) == lockWordStateHash) {
return lockWord & ~lockWordMask;
}
return System.identityHashCode(this);
}
Aber sonst gibt es keine Hinweise darauf. Sind sie irgendwie verwandt mit GC in ART? Oder irgendeine Art von nativem Zeug?
ich keine Antwort haben, aber einige dieser Links geholfen Ich verstehe, was passieren könnte. Sende sie einfach, wenn sie jemand anderem helfen! http://stackoverflow.com/questions/3362303/whats-a-monitor, http://stackoverflow.com/questions/16721021/what-is-klass-klassklasse, http://stackoverflow.com/questions/1092099/ what-is-variable-shadowing-used-fuer-in-einem-java-class, http://stackoverflow.com/questions/910374/why-does-java-have-transient-variables –
@Tspoon, was ist das? Bedeutung dieser Werte oder wie werden diese Werte verwendet? – Diffy