Inhaltsverzeichnis
Wissenspunkt 1: Der Unterschied zwischen Ganzzahl und int " >Wissenspunkt 1: Der Unterschied zwischen Ganzzahl und int
Heim Java javaLernprogramm Der Unterschied zwischen Integer und Int und die detaillierte Erklärung der Methode integer.values()

Der Unterschied zwischen Integer und Int und die detaillierte Erklärung der Methode integer.values()

Jun 26, 2017 am 10:20 AM
integer 区别 方法

Erklärung: Bei diesem Artikel handelt es sich um einen Nachdruck des Bloggers. Die Originaladresse finden Sie am Ende des Artikels.

Wissenspunkt 1: Der Unterschied zwischen Ganzzahl und int

/*
* int sind die 8 bereitgestellten primitiven Typen von Java Einer der Datentypen. Java stellt Wrapper-Klassen für jeden primitiven Typ bereit. Integer ist die von Java bereitgestellte Wrapper-Klasse für int. Der Standardwert von int ist 0,
* und der Standardwert von Integer ist null
* Das heißt, Integer kann den Unterschied zwischen nicht zugewiesenem Wert und Wert unterscheiden 0, int Es ist unmöglich, die nicht zugewiesene Situation auszudrücken. Wenn Sie beispielsweise den Unterschied zwischen der Nichtteilnahme an der Prüfung und dem Prüfungsergebnis von 0
* ausdrücken möchten, können Sie nur Integer
*. In der JSP-Entwicklung ist der Standardwert von Integer null. Wenn also der EL-Ausdruck zur Anzeige im Textfeld verwendet wird, ist der Wert eine leere Zeichenfolge, und der Standardwert von int ist 0, wenn also der EL-Ausdruck verwendet wird Um es im Textfeld
* anzuzeigen, ist das Ergebnis 0, sodass int nicht als Formulardatentyp der Webebene geeignet ist.
* Wenn OID im Ruhezustand als Integer-Typ definiert ist, kann Hibernate basierend darauf bestimmen, ob ein Objekt temporär ist, ob sein Wert null ist
* , wenn das Da OID als int-Typ definiert ist, müssen Sie in der HBM-Zuordnungsdatei auch das Attribut „Nicht gespeicherter Wert“ auf 0 setzen.
* Darüber hinaus bietet Integer mehrere ganzzahlbezogene Operationsmethoden, z. B. die Konvertierung einer Zeichenfolge in eine Ganzzahl, und definiert auch Konstanten, die den Maximal- und Minimalwert von Ganzzahlen darstellen.

*/

Wissenspunkt 2: Detaillierte Erklärung der Methode integer.values()

Warum kommt das erste Urteil zurück true und das zweite Urteil kehrt zurück false? Gibt es einen Unterschied zwischen 127 und 128, den ich nicht kenne? (Natürlich, außer dass 127 kleiner ist als 128...)

Außerdem: Warum gibt das dritte Urteil ? trueIch habe die Antworten auf eine andere verwandte Frage gelesen, weiß aber immer noch nicht, wann sie wahr sind und warum das zweite Urteil zutrifft
. false

Antwort Nr. 1:

zeigt ein ungewöhnliches Verhalten. Integer.valueOf(String)

gibt ein valueOf (Ganzzahl)-Objekt zurück. Wenn die verarbeitete Zeichenfolge zwischen Integer und -128 (einschließlich Grenzen) liegt, wird das zurückgegebene Objekt vorab zwischengespeichert. Aus diesem Grund gibt der Aufruf in der ersten Zeile 127-true127

zurück. Dieses ganzzahlige Objekt wird zwischengespeichert (dasselbe Objekt wird also zweimal von

zurückgegeben) – der Aufruf in der zweiten Zeile gibt Da valueOf nicht zwischengespeichert ist, generiert jeder Aufruf ein neues Ganzzahlobjekt false128, sodass die beiden Ganzzahlobjekte

unterschiedliche Objekte sind.

128

Es ist wichtig

zu wissen, dass Sie im obigen Vergleich tatsächlich die von zurückgegebene Objektreferenz vergleichen. Wenn Sie also das ganzzahlige Objekt außerhalb des Caches vergleichen, ist Gleichheit Das Urteil wird nicht zurückgegeben , selbst wenn Sie integer.valueOftrue bestehen und der Wert von

gleich ist, ist es nutzlos. (Genau wie

in der zweiten Zeile. Wenn Sie möchten, dass dieses Urteil valueOf zurückgibt, müssen Sie die Methode Integer.valueOf(128)==Integer.valueOf(128)) verwenden. trueequals()

gibt kein ganzzahliges Objekt, sondern ein Geben Sie das Grundelement ein. In der dritten Zeile des Urteils lautet der tatsächliche Vergleich

, parseInt()int, also muss es gleich sein >trueSprechen wir über einen kleinen Unterschied im dritten Vergleich, der sein Ergebnis vom zweiten Vergleich unterscheidet: 128 == 128

Eine Unboxing-Konvertierung (eine Konvertierung während des Vergleichs, die das Objekt in eine Referenz auf sein entsprechendes Atom umwandelt Typ) kommt im Vergleich in der dritten Zeile vor, da der Vergleichsoperator

verwendet und auf beiden Seiten des Gleichheitszeichens ein

vorhanden ist Das auf der rechten Seite des Gleichheitszeichens zurückgegebene Objekt wird weiter in einen

-Wert umgewandelt, bevor es dem

-Wert auf der linken Seite entspricht. Nach Abschluss der Konvertierung werden also tatsächlich zwei atomare Werte verglichen Ganzzahlige Werte. Diese Konvertierung entspricht genau dem, was Sie beim Vergleich zweier Atomtypen erwarten würden, sodass Sie am Ende ==

vergleichen. Antwort Nr. 2: Das

int Die IntegerInteger-Klasse verfügt über einen statischen Cache, der 256 spezielle int-Objekte speichert – jedes entspricht einem Wert zwischen `-128 und 127

Mit diesem Konzept können Sie den Unterschied zwischen den oben genannten drei Zeilen erkennen Code.

128

1128
new Integer(123);

显示创建了一个新的Integer对象。

1
1
Integer.parseInt("123");
Integer.parseInt( "123");

int

解析完字符串后返回一个
值.
1
Integer.valueOf("123");
1
Integer.valueOf("123" code>);

-128

127

这种情况比其他的要更复杂一些.首先进行了字符串解析,然后如果解析的值位于Integer()

之间,就会从静态缓存中返回对象.如果超出了这个范围,就会调用

方法并将解析的值作为参数传入,得到一个新的对象.
1
Integer.valueOf("127")==Integer.valueOf("127");
现在,让我们看一下问题中的3个表达式.

tbody>
1true
Integer.valueOf("127")==Integer.valueOf("127");Integertrue
上面的表达式返回
1
Integer.valueOf("128")==Integer.valueOf("128");
,因为的值从静态缓存中取了2次,表达式返回了对象与自己比较的结果.因为只有一个Integer对象,所以返回结果为。
1
Integer.valueOf("128")==Integer.valueOf("128"); code>

Der obige Ausdruck gibt false zurück, da für 128 kein statischer Puffer vorhanden ist. Jedes Mal, wenn Gleichheit festgestellt wird, werden auf beiden Seiten der Gleichung neue Integer-Objekte erstellt. Da die beiden Integer-Objekte unterschiedlich sind, gibt == nur

zurück, wenn beide Seiten der Gleichung

true dasselbe Objekt darstellen. Daher gibt die obige Gleichung false zurück.

tr>
1
1
Integer.parseInt("128")==Integer.valueOf("128");
Integer.parseInt("128")==Integer .valueOf("128");

int128Der obige Ausdruck vergleicht den ursprünglichen Integer-Wert int auf der linken Seite mit dem neu erstellten Integer-Objekt auf der rechten Seite. Da der Vergleich zwischen

und

jedoch bedeutungslos ist, entpackt Java automatisch Integerintint vor dem Vergleich, sodass das Endergebnis der Wert des Vergleichs zwischen 128 und true ist. Da

sich selbst entspricht, wird zurückgegeben.

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Integer und Int und die detaillierte Erklärung der Methode integer.values(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Der Unterschied zwischen Multithreading und asynchronem C# Der Unterschied zwischen Multithreading und asynchronem C# Apr 03, 2025 pm 02:57 PM

Der Unterschied zwischen Multithreading und Asynchron besteht darin, dass Multithreading gleichzeitig mehrere Threads ausführt, während asynchron Operationen ausführt, ohne den aktuellen Thread zu blockieren. Multithreading wird für rechenintensive Aufgaben verwendet, während asynchron für die Benutzerinteraktion verwendet wird. Der Vorteil des Multi-Threading besteht darin, die Rechenleistung zu verbessern, während der Vorteil von Asynchron nicht darin besteht, UI-Threads zu blockieren. Die Auswahl von Multithreading oder Asynchron ist von der Art der Aufgabe abhängt: Berechnungsintensive Aufgaben verwenden Multithreading, Aufgaben, die mit externen Ressourcen interagieren und die UI-Reaktionsfähigkeit asynchron verwenden müssen.

Was ist die Funktion der C -Sprachsumme? Was ist die Funktion der C -Sprachsumme? Apr 03, 2025 pm 02:21 PM

Es gibt keine integrierte Summenfunktion in der C-Sprache, daher muss sie selbst geschrieben werden. Die Summe kann erreicht werden, indem das Array durchquert und Elemente akkumulieren: Schleifenversion: Die Summe wird für die Schleifen- und Arraylänge berechnet. Zeigerversion: Verwenden Sie Zeiger, um auf Array-Elemente zu verweisen, und eine effiziente Summierung wird durch Selbststillstandszeiger erzielt. Dynamisch Array -Array -Version zuweisen: Zuordnen Sie Arrays dynamisch und verwalten Sie selbst den Speicher selbst, um sicherzustellen, dass der zugewiesene Speicher befreit wird, um Speicherlecks zu verhindern.

Der Unterschied zwischen char und wchar_t in der C -Sprache Der Unterschied zwischen char und wchar_t in der C -Sprache Apr 03, 2025 pm 03:09 PM

In der C -Sprache ist der Hauptunterschied zwischen char und wchar_t die Zeichencodierung: char verwendet ASCII oder erweitert ASCII, wchar_t Unicode; char nimmt 1-2 Bytes auf, wchar_t nimmt 2-4 Bytes auf; char ist für englischen Text geeignet. Wchar_t ist für mehrsprachige Text geeignet. char ist weithin unterstützt, wchar_t hängt davon ab, ob der Compiler und das Betriebssystem Unicode unterstützen. char ist in der Charakterbereich begrenzt, WCHAR_T hat einen größeren Charakterbereich und spezielle Funktionen werden für arithmetische Operationen verwendet.

Der Unterschied zwischen Ether und Bitcoin, was ist der Unterschied zwischen Ether und Bitcoin Der Unterschied zwischen Ether und Bitcoin, was ist der Unterschied zwischen Ether und Bitcoin Mar 19, 2025 pm 04:54 PM

Der Unterschied zwischen Ethereum und Bitcoin ist signifikant. Technisch gesehen verwendet Bitcoin POW, und Ether hat sich von POW nach POS verlagert. Die Handelsgeschwindigkeit ist für Bitcoin langsam und Ethereum ist schnell. In Anwendungsszenarien konzentriert sich Bitcoin auf den Zahlungsspeicher, während Ether intelligente Verträge und DApps unterstützt. In Bezug auf die Ausgabe beträgt der Gesamtbetrag von Bitcoin 21 Millionen und es gibt keine feste Gesamtmenge an Ethermünzen. Jede Sicherheitsherausforderung ist verfügbar. In Bezug auf den Marktwert ist Bitcoin an erster Stelle, und die Preisschwankungen beider sind groß, aber aufgrund unterschiedlicher Merkmale ist der Preistrend von Ethereum einzigartig.

Wie wirkt Apache oder Nginx mit PHP zusammen: Was ist der Unterschied zwischen mod_php5, PHP-CGI und PHP-FPM? Wie wirkt Apache oder Nginx mit PHP zusammen: Was ist der Unterschied zwischen mod_php5, PHP-CGI und PHP-FPM? Apr 01, 2025 pm 12:15 PM

Der kollaborative Arbeitsmechanismus zwischen Apache oder Nginx und PHP: Vergleich von Mod_Php5, PHP-CGI und PHP-FPM besteht darin, Apache oder Nginx zu verwenden, um einen Webserver zu erstellen und PHP für Backend zu verwenden ...

Gibt es eine mobile App, die XML in PDF umwandeln kann? Gibt es eine mobile App, die XML in PDF umwandeln kann? Apr 02, 2025 pm 08:54 PM

Eine Anwendung, die XML direkt in PDF konvertiert, kann nicht gefunden werden, da es sich um zwei grundlegend unterschiedliche Formate handelt. XML wird zum Speichern von Daten verwendet, während PDF zur Anzeige von Dokumenten verwendet wird. Um die Transformation abzuschließen, können Sie Programmiersprachen und Bibliotheken wie Python und ReportLab verwenden, um XML -Daten zu analysieren und PDF -Dokumente zu generieren.

Was sind die grundlegenden Anforderungen für C -Sprachfunktionen? Was sind die grundlegenden Anforderungen für C -Sprachfunktionen? Apr 03, 2025 pm 10:06 PM

C -Sprachfunktionen sind die Grundlage für die Code -Modularisierung und das Programmaufbau. Sie bestehen aus Deklarationen (Funktionsüberschriften) und Definitionen (Funktionskörper). C Sprache verwendet standardmäßig Werte, um Parameter zu übergeben, aber externe Variablen können auch mit dem Adresspass geändert werden. Funktionen können oder haben keinen Rückgabewert, und der Rückgabewerttyp muss mit der Deklaration übereinstimmen. Die Benennung von Funktionen sollte klar und leicht zu verstehen sein und mit Kamel oder Unterstrich die Nomenklatur. Befolgen Sie das Prinzip der einzelnen Verantwortung und behalten Sie die Funktion ein, um die Wartbarkeit und die Lesbarkeit zu verbessern.

Was ist der Unterschied zwischen 'var' und 'Typ' Typenwort Definition in der GO -Sprache? Was ist der Unterschied zwischen 'var' und 'Typ' Typenwort Definition in der GO -Sprache? Apr 02, 2025 pm 12:57 PM

Zwei Möglichkeiten, Strukturen in der GO -Sprache zu definieren: Der Unterschied zwischen VAR- und Typ -Schlüsselwörtern. Bei der Definition von Strukturen sieht die Sprache oft zwei verschiedene Schreibweisen: Erstens ...

See all articles