


Detaillierte Analyse des Quellcodes der Byte-Klasse in Java – Schrittdetails
Lassen Sie uns heute den Quellcode der Klasse java.lang.Byte analysieren und direkt zum Thema übergehen
Zunächst einmal
public final class Byte extends Number implements Comparable<Byte> { public static final byte MIN_VALUE = -128; public static final byte MAX_VALUE = 127; public static final int SIZE = 8; public static final int BYTES = SIZE / Byte.SIZE; @SuppressWarnings("unchecked") public static final Class<Byte> TYPE = (Class<Byte>) Class.getPrimitiveClass("byte");
Der erste Satz der Klasse Byte ist endgültig geändert und kann nicht vererbt werden. Die Number-Klasse kann für eine Reihe von Konvertierungen numerischer Typen verwendet werden. Sie implementiert die Comparable-Schnittstelle, die zum Vergleich verwendet werden kann .
Der vierte Satz definiert die Größe von Byte, also ein Byte.
Der fünfte Satz gibt das Byte an, also SIZE/Byte.SIZE = 1 Der mit Anmerkungen versehene Satz, der für Warnungen stumm bleibt, lautet „Holen Sie sich die beiden Konstruktoren der ursprünglichen Klasse
public Byte(byte value) { this.value = value; } public Byte(String s) throws NumberFormatException { this.value = parseByte(s, 10); }
Byte-Klasse“. Der übergebene Wert muss ein Byte-Typwert sein, und die Zeichenfolge muss sein eine Zeichenfolge sein, die in eine Zahl konvertiert werden kann.
public static String toString(byte b) { return Integer.toString((int)b, 10); } public String toString() { return Integer.toString((int)value); } private static class ByteCache { private ByteCache(){} static final Byte cache[] = new Byte[-(-128) + 127 + 1]; static { for(int i = 0; i < cache.length; i++) cache[i] = new Byte((byte)(i - 128)); } }
- unten Die ByteCache-Methode definiert einen Byte-Cache-Wert und schreibt -128~127 in ein Cache-Array. Wenn er innerhalb dieses Bereichs liegt, verwendet die JVM den Cache direkt Wert, aber wenn er diesen Bereich überschreitet, kommt es zu einem Überlauf. Wie im vorherigen Artikel erwähnt, wird 128 zu -128 und die Schleifenberechnung wird ab dem Mindestwert fortgesetzt.
parseByte analysiert den String-Typ in den Byte-Typ , Radix ist die Basis, Radix ist die Zahl und s ist eine Dezimalzahl, das Ergebnis nach dem Parsen ist eine Dezimalzahl
public static Byte valueOf(byte b) { final int offset = 128; return ByteCache.cache[(int)b + offset]; } public static Byte valueOf(String s, int radix) throws NumberFormatException { return valueOf(parseByte(s, radix)); } public static Byte valueOf(String s) throws NumberFormatException { return valueOf(s, 10); }
Konvertieren Sie den Wert des eingehenden Parameters in den Byte-Typ, hier ist er Die Methode zum Aufhängen des Parameters radix besteht darin, zuerst die Zeichenfolge in eine Dezimalzahl zu analysieren und dann valueOf
public static Byte decode(String nm) throws NumberFormatException { int i = Integer.decode(nm); if (i < MIN_VALUE || i > MAX_VALUE) throw new NumberFormatException( "Value " + i + " out of range from input " + nm); return valueOf((byte)i); }
auszuführen. Dies ist eine Decodierungs- und Transcodierungsmethode. Die vorherige Methode wurde nicht so geschrieben Jetzt wird die Dekodierungsmethode der Integer-Klasse direkt aufgerufen und dann beurteilt, ob sie kleiner als der Mindestwert oder größer als der Maximalwert ist. Dann wird sie in den Byte-Typ konvertiert und nun wird der Satz tatsächlich zurückgegeben. Byte-Typ existiert in Java nicht“
public byte byteValue() { return value; } public short shortValue() { return (short)value; } public int intValue() { return (int)value; } public long longValue() { return (long)value; } public float floatValue() { return (float)value; } public double doubleValue() { return (double)value; }
Dies sind einige Methoden der erzwungenen Typkonvertierung, die sehr einfach sind, aber trotzdem schreiben
@Override public int hashCode() { return Byte.hashCode(value); } public static int hashCode(byte value) { return (int)value; }
Der erste hashCode ist eine Überschreibung der hasnCode-Methode von Objekt, das zum Vergleichen zweier Werte verwendet wird, insbesondere bei Interviews. Dies wird jetzt nicht im Detail erläutert. Die hashCode-Methode wird hauptsächlich in
public boolean equals(Object obj) { if (obj instanceof Byte) { return value == ((Byte)obj).byteValue(); } return false; }
equals verwendet Nun lohnt sich ein Vergleich.
public int compareTo(Byte anotherByte) { return compare(this.value, anotherByte.value); } public static int compare(byte x, byte y) { return x - y; }
Vergleichsmethode: Wenn x > y, gibt sie eine positive Zahl zurück, wenn x = y, gibt sie 0 zurück. Wenn x < Ich verstehe den Serialisierungsprozess nicht ganz. . . .
Verwandte Artikel:
- Java Int zu Byte und Long zu Byte
Das obige ist der detaillierte Inhalt vonDetaillierte Analyse des Quellcodes der Byte-Klasse in Java – Schrittdetails. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

In diesem Artikel wird die Integration der funktionalen Programmierung in Java unter Verwendung von Lambda -Ausdrücken, Streams -API, Methodenreferenzen und optional untersucht. Es zeigt Vorteile wie eine verbesserte Lesbarkeit der Code und die Wartbarkeit durch SUKTIVE UND VERUSNAHMETALITÄT

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

In diesem Artikel werden die NIO-API von Java für nicht blockierende E/A erläutert, wobei Selektoren und Kanäle verwendet werden, um mehrere Verbindungen effizient mit einem einzelnen Thread zu verarbeiten. Es beschreibt den Prozess, die Vorteile (Skalierbarkeit, Leistung) und mögliche Fallstricke (Komplexität,

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

In diesem Artikel wird die Socket-API von Java für die Netzwerkkommunikation beschrieben, die das Setup des Client-Servers, die Datenbearbeitung und entscheidende Überlegungen wie Ressourcenverwaltung, Fehlerbehandlung und Sicherheit abdeckt. Es untersucht auch die Leistungsoptimierungstechniken, ich
