Ich versuche, einen Speicherverlust in einem Java-Prozess zu finden, mit jmap und jhat. Jedes Mal, wenn ich das mache, sehe ich diese merkwürdige Notation für bestimmte Objekttypen, wie [S
für String-Arrays und [C
für Zeichen-Arrays. Ich erinnere mich nie, was was bedeutet, und es ist sehr schwer, dieses Zeug zu googeln.Was bedeuten diese seltsamen Klassennamen in einem Java-Heap-Dump?
(EDIT: mein Punkt zu beweisen, es stellt sich heraus, dass [S
Reihe von kurzen und [C
ist Array von char.)
irgendwen eine Tabelle, die alle verschiedenen Klassennamen Auflistung zu machen und was sie bedeuten? Oder zeigst du mich auf einen solchen Tisch?
Speziell würde ich gerne wissen, was [Ljava.lang.Object;
bedeutet.
Array von String sein sollte _ [Ljava/lang/String; _. –
Zu meiner Verteidigung führte mich das Googlen zu einem Artikel auf java.sun.com, der diese Zeile enthält: "Die Array-Objekte String und Character, [S und [C, werden auf dieser Liste immer ganz oben stehen. Etwas irreführend. – itsadok
Diese Seite hat auch einige gute Informationen: https://communities.ca.com/web/ca-wily-global-user-community/wiki/-/wiki/Main/JNI+Signatures/contactLink – masterxilo