Verstehen der Objekt-Array-Typkodierung
Wenn Sie ein Objekt aus einem Funktionsaufruf abrufen und seine Zeichenfolgendarstellung drucken, stoßen Sie möglicherweise auf eine rätselhafte Notation wie „[Ljava.lang.Object;“. Dieser rätselhafte Ausdruck stellt den Klassentyp des Objekts dar, aber wie entschlüsseln wir sein kryptisches Format?
Das Klassentyp-Codierungsschema wird in Class.getName() elegant detailliert beschrieben: Für Referenztypen (ausgenommen Arrays) gilt das Binärname wird zurückgegeben. Primitive Typen und void werden ihren Java-Schlüsselwörtern zugewiesen. Für Arrays nimmt ihre Codierung jedoch eine eindeutige Form an.
Array-Codierung: Aufschlüsselung von [ Ljava.lang.Object; ]
"Ljava.lang.Object;" ist die Notation für die Java-Klasse, die ein Array von Objekten darstellt, auch bekannt als Object[].class. Das Benennungsmuster folgt den folgenden Regeln:
- Der Name des Elementtyps wird zuerst angegeben.
- Bei Arrays wird dem Elementtyp ein oder mehrere „[“-Zeichen vorangestellt. Angabe der Verschachtelungstiefe.
Verstehen der Kodierungsnotation
Das Format ist wie folgt:
Elementtypkodierung
boolescher Wert Z
Byte B
char C
double D
float F
int I
long J
short S
class or interface Lclassname;
Beispieldekodierungen
Betrachten Sie zur Veranschaulichung diese Beispiele:
- [[[I@xxxxx: Dies stellt ein Array mit drei Verschachtelungsebenen dar, das ganze Zahlen als Elemente enthält.
- [[Ljava.lang.String;@xxxxx: Dies bezeichnet ein Array mit zwei Verschachtelungsebenen, das Arrays von Strings enthält.
- [Z@xxxxx: Dies stellt ein Array mit booleschen Elementen dar.
Warum Arrays toString() überschreiben
Entgegen der Erwartung weicht die toString()-Methode für Arrays von der Implementierung der Object-Klasse ab. Sie gibt einen String im oben genannten Format zurück, da Arrays diese Methode nicht überschreiben. Daher wird die von Object geerbte Methode aufgerufen, die wie folgt angegeben ist:
String.class gibt einen String im Format zurück: getClass().getName() '@' Integer.toHexString(hashCode())
Alternative Array-String-Darstellung
Die Klasse java.util.Arrays bietet benutzerfreundlichere String-Darstellungen für Arrays:
- Arrays.toString (nums): Für primitive Arrays und Object[] wird eine durch Kommas getrennte Liste von Elementen angezeigt.
- Arrays.deepToString(table): Für mehrdimensionale Arrays wird eine verschachtelte Darstellung bereitgestellt.
Zusätzliche nützliche Ressourcen
- Arrays.equals und Arrays.deepEquals: Diese Methoden vergleichen Arrays auf elementweise Gleichheit.
- Java Arrays.equals() gibt für zweidimensionale Arrays false zurück
- Wirksam Java 2. Auflage, Punkt 53: Schnittstellen gegenüber Reflexion bevorzugen
Das obige ist der detaillierte Inhalt vonWas bedeutet „[Ljava.lang.Object;' bei der Java-Array-Typkodierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

JavaremainsAgoodlanguageduetoitscontinuousevolutionandrobustEcosystem.1) LambdaexpressionenhanceCodereadabilityAnableFunctionalprogramm.

Javaisgratduetoitsplattformindependenz, robutepoopsupport, extensinstivibrary und Strongcommunity.1) PlattformindependenzenviajvMallowsCodetorunonvariousPlatforms.2) oopfeatures Likecapsulation, Erbe und PolymorphoseMendeularsCalablcode.3)

Die fünf Hauptmerkmale von Java sind Polymorphismus, Lambda -Ausdrücke, Streamsapi, Generika und Ausnahmebehandlung. 1. Polymorphismus ermöglicht es, Objekte verschiedener Klassen als Objekte gemeinsamer Basisklassen zu verwenden. 2. Lambda -Ausdrücke machen den Code prägnanter, insbesondere für die Handhabung von Sammlungen und Streams. 3.Streamsapi verarbeitet effizient große Datensätze und unterstützt deklarative Vorgänge. 4. Generika bieten Typensicherheit und Wiederverwendbarkeit, und während der Zusammenstellung werden Typfehler aufgenommen. 5. Ausnahmebehandlung hilft, fehlerfrei zu handhaben und zuverlässige Software zu schreiben.

Java'StopfeaturessinifificteNtationHancePSperformanceandScalability.1) Objektorientierte Principles LikepolymorphismenableFlexiBleandsCalableCode.2) garbagebackecollectionAutomatomatomatomatomatomatomatomatomatomatomatomatomatomatomatomatomatesMorymanagementbutcancauselatissues.3) Die

Zu den Kernkomponenten des JVM gehören Classloader, RunTimedataara und ExecleateEngine. 1) Classloader ist für das Laden, Verknüpfen und Initialisieren von Klassen und Schnittstellen verantwortlich. 2) Runtimedataara enthält Methoden-, Haufen-, Stapel-, PCregister- und Nativemethodstacks. 3) ExecXesionEngine besteht aus Dolmetscher, Jitcompiler und GarbagebyCollector, der für die Ausführung und Optimierung von Bytecode verantwortlich ist.

Java'sSafetyandSecurityarebolsteredby: 1) StrongyPing, die sich mit dem Verhältnis von BrevventType-Related-Related-Relating-Related-Relating-Robuations-Robust-Verhandlung, Enguringgrading, Ensuringgrealing und 4) Robustxceptionhandling, Ensuringgregradinggrocking und 4) Robustxceptionhandling, Enguringgradegry,

JavaoffersseveralKeyFeaturesthatenhanceCodingskills: 1) Objektorientierte ProgrammingallowsModelingreal-Welt, beispielhaft veranschaulicht

ThejvmisacrucialComponentThatrunsjavacodeBytranslatingIntomachine-spezifische Struktur, ImpactingPerformance, Sicherheit und Portabilität.1) TheClassloaderloads, Links und Intropionsclasss.2) Die ExecleateExexexexexexexexecutesytecodintomatinstructions.3) Memo


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool
