Hallo zusammen, ich bin Bruder Node, in der Welt als Bruder Qing bekannt. Vor Kurzem war ich sehr fasziniert von dem beliebten Buch „Java from Beginners to Burial“. Liste der großen Buchhandlungen. Es scheint, dass es immer noch viele Freunde gibt, die gerne lernen! Es heißt, dass „Wissen das Schicksal verändert und Java das Leben verändert“. Es scheint, dass meine Entscheidung, Java zu lernen, die richtige war!
An diesem Tag war ich gelangweilt und wanderte auf CSDN herum und sah einen Blog: [Datenstruktur und Algorithmus 05,
Rot-Schwarzer Baum nach dem Lesen desPaketsVerstehen~]. Ehrlich gesagt bin ich sehr verächtlich, wenn ich Artikel wie diesen sehe. Welcher Baum ist das? Warum ist es halb rot und halb schwarz? Verstehen Sie, nachdem Sie das gelesen haben? Was ist, wenn ich die Hälfte davon verstehe? Ist das nicht eine Dystokie? Schnauben! Lass mich dir zeigen, was für ein Monster du bist. Mit einer Berührung meiner kleinen Hand bin ich dabei. Zuerst war ich sehr missbilligend, aber je weiter ich kam, desto überraschter wurde ich ... Zwei Minuten später wäre ich fast niedergekniet! Das ist so gut geschrieben, warum kommt es mir so vor, als wäre es detaillierter als das, was im Buch steht (obwohl ich es nicht verstanden habe)! Schauen Sie sich das voller nützlicher Informationen, diesen frischen und verfeinerten Text, diesen vollständigen Bildschirm voller [Wissen] an, wie könnte ich es ertragen, das zu verpassen? Warum lässt du ihn nicht zu meinen Favoriten gehen und Asche essen? Beobachten Sie, wie ich meinen Favoriten nacheinander folge, sie mit „Gefällt mir“ markiert und zu meinen Favoriten hinzufüge, um dem Chef alles klar zu machen.
Vor Aufregung klickte ich leise auf das Dialogfeld des Chefs.
Ich: Boss, bist du da? Nach einer Weile antwortete der Chef tatsächlich!
Bruder Wu: Was ist los~?
Ich: (Ich weiß nicht, wie ich die Wörter ordnen soll) Ähm... Boss... du siehst so gut aus! So großartig!
Bruder Wu: Schädlich! Wird das nicht akzeptiert?
Ich: (Ich habe eine schwarze Linie auf meiner Stirn. Ich wette, dieser Typ ist ein bisschen narzisstisch. Ich versuche nur, ihm im Geschäft zu schmeicheln. Er ist ziemlich stolz auf sich?) Haha ~ Boss, es ist so . Ich bin ein Neuling, der Java lernt. Kannst du mich mitnehmen?
Bruder Wu: Nun... das... ist auch in Ordnung, ich erhebe eine Gebühr Ich: (Ich dachte, ich sei tatsächlich ein großer Chef, und ich berechne immer noch eine Gebühr) Großer Bruder, ich mag Java sehr, ich habe kürzlich ein Buch gekauft, um es zu lernen. Der Titel ist „Java from Getting Started to Burial“. ". Ich finde dieses Buch ziemlich gut. Okay, ich habe nur ein wenig Zweifel und möchte ein paar Fragen zum Thema Lernen stellen. Glaubst du, ich kann eine Hintertür öffnen? Bruder Wu: Dann... okay. Da Sie so lernbegierig sind, gebe ich Ihnen einige Hinweise. Wo haben Sie jetzt gelernt? Ich: Ich habe gerade die Grundlagen von Java gelernt und bin ein wenig verwirrt, wenn ich die Datenstruktur sehe ~ Bruder Wu: Das lässt sich leicht sagen, ich habe mehr als ein halbes Jahr gebraucht, um es zu lernen die Grundlagen von Java! Die Grundlage ist sehr solide. Ich kann Sie gemeinsam durch diesen Wissenspunkt führen. Ich: Wirklich? Chef! Vielen Dank! Ich werde dich später zum Abendessen einladen! Bruder Wu: Kleines Problem, kleines Problem. Wie ich sehe, bist du auch in Hefei? Ich: Ja~ (Ein bisschen panisch habe ich leise auf das Profil des Chefs geklickt, könnte es sein...) Bruder Wu: Haha, was für ein Zufall! Ich bin auch hier! Ich: Hä? So ein Zufall? Wie wäre es mit ... (Es scheint, als ob man einer Mahlzeit nicht entkommen kann, ich weine ...) Bruder Wu: Du fügst mich auf WeChat hinzu, ich schicke dir einen Standort und wir können ausführlich reden. Ich: (Ist das... ein persönliches Treffen? Nur ein paar Minuten Kommunikation? Sind alle großen Jungs so versaut? Obwohl mein Herz nicht dazu bereit ist, ist mein Körper sehr ehrlich) emm. .. Okay, ich werde dorthin gehen ... Bruder Wu: Okay, ich werde auf dich warten ~ Ich schauderte ... Ich fühlte mich ein wenig in Panik in meinem Herzen! Eine halbe Stunde später nahm ich ein Taxi gemäß der von Bruder Wu angegebenen Adresse. Als ich Bruder Wu wie erwartet sah, war er extrem wütend! Ich sah Bruder Wu mit nach hinten gekämmten Haaren und etwas Öl, wie er sich im 45°-Winkel auf das Auto lehnte, in den Himmel blickte, sich eine Zigarette anzündete, mit endlosen Wechselfällen und Einsamkeit. Ich: (die Kugel schamlos und ging nach oben, um Hallo zu sagen) Bruder Wu? Bruder Wu: (hörte auf zu rauchen und blickte mich etwas verwirrt an): Hallo? Bist du ein Node-Typ? Ich: Ähm...ja (geht leise ein paar Schritte zurück) Bruder Wu: (geht rüber und legt seinen Arm um meine Schultern) Lass uns ins Café gehen, eine Tasse Kaffee trinken und uns unterhalten . Java, wie? Ich: (Ich dachte, du wärst so, aber ich weigerte mich trotzdem!) Okay ... Also, Bruder Wu umarmte mich und ging zu Starbucks ... und fand dann einen ruhigen Ort, ein kleines Privatzimmer. . Ich schätze, du kannst die nächste Szene erraten... Ähm! Seien Sie ernst! Wir sind hier, um über das Lernen zu diskutieren! Was? Glaubst du es nicht? Dann werfen Sie einen Blick unten, Informationsalarm! Es gibt viele Java-Datentypen. Dieser Artikel fasst sie hauptsächlich unter vier Aspekten zusammen: Basistypen, Pakettypen, Referenztypen und Cache-Pools. Grundlegende Datentypen
Zu den Grunddatentypen gehören Byte, Short, Int, Long, Float, Double, Boolean und Char. Ich habe ein Bild über ihre Klassifizierung gezeichnet. Grundtypen Als nächstes fasse ich es unter den Aspekten Byteanzahl, Datenbereich, Standardwert und Zweck in einer Tabelle zusammen, damit es auf einen Blick klar ist.
Verpackungsdatentypen
In Java sind Referenztypvariablen C/C++-Zeigern sehr ähnlich. Ein Referenztyp zeigt auf ein Objekt, und eine Variable, die auf ein Objekt zeigt, ist eine Referenzvariable. Diesen Variablen wird bei der Deklaration ein bestimmter Typ zugewiesen, z. B. Student, Dog usw. Sobald eine Variable deklariert ist, kann ihr Typ nicht mehr geändert werden.
Objekte und Arrays sind Referenzdatentypen. Der Standardwert für alle Referenztypen ist null. Eine Referenzvariable kann verwendet werden, um auf jeden kompatiblen Typ zu verweisen. Zum Beispiel:
Dog dog = new Dog("旺财")。
Wie konvertiert man zwischen Pakettypen und Basistypen?
Integer x = 2; // 装箱 调用了 Integer.valueOf(2) int y = x; // 拆箱 调用了 X.intValue()
Wie konvertiert man zwischen Grundtypen? Es gibt zwei Punkte:
Bei der Konvertierung eines Typs mit großer Kapazität in einen Typ mit kleiner Kapazität muss eine erzwungene Typkonvertierung verwendet werden.
Typen mit kleiner Kapazität in Typen mit großer Kapazität umwandeln, kann automatisch konvertiert werden.
Zum Beispiel:
int i =128; byte b = (byte)i; long c = i;
Lassen Sie uns über eine Frage nachdenken: new Integer(123)
与Integer.valueOf(123)
Was ist der Unterschied?
Manche Leute wissen es vielleicht, andere vielleicht nicht. Tatsächlich sind sie sehr unterschiedlich.
new Integer(123) 每次都会新建一个对象;
Integer.valueOf(123) 会使用缓存池中的对象,多次调用会取得同一个对象的引用。
我写个demo大家就知道了
Integer x = new Integer(123); Integer y = new Integer(123); System.out.println(x == y); // false Integer z = Integer.valueOf(123); Integer k = Integer.valueOf(123); System.out.println(z == k); // true
编译器会在自动装箱过程调用valueOf()
方法,因此多个值相同且值在缓存池范围内的 Integer 实例使用自动装箱来创建,那么就会引用相同的对象。如:
Integer m = 123; Integer n = 123; System.out.println(m == n); // true
valueOf()
方法的实现比较简单,就是先判断值是否在缓存池中,如果在的话就直接返回缓存池的内容。我们看下源码就知道。
public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }
根据数据类型的不一样,这个缓存池的上下限也不同,比如这个 Integer,就是 -128~127。不过这个上界是可调的,在启动 jvm 的时候,通过 -XX:AutoBoxCacheMax=
参考自StackOverflow:
https://stackoverflow.com/questions/9030817/differences-between-new-integer123-integer-valueof123-and-just-123
OK,关于Java数据类型的小知识就分享到这了,虽然我还有点意犹未尽…
Java 的数据类型虽然简单,但是里面还是有很多小细节值得我们玩味的,希望这篇文章能给大家带来一些帮助。
Das obige ist der detaillierte Inhalt vonSie haben Java-Datentypen noch nicht gelernt? Weil die Haltung nutzlos ist!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!