Heim  >  Artikel  >  Java  >  Ausführliche Erläuterung von Kapitel 3 der Gedankenzusammenfassung zur Java-Programmierung

Ausführliche Erläuterung von Kapitel 3 der Gedankenzusammenfassung zur Java-Programmierung

黄舟
黄舟Original
2017-07-24 14:32:391081Durchsuche

In diesem Kapitel gibt es nicht viel zusammenzufassen, aber Sie müssen auf die Details achten, von denen einige leicht vergessen werden.

Kapitel 3

Inhalt:

  • 3.1 Einfachere Druckanweisungen

  • 3.2 Verwendung von Java-Operatoren

  • 3.3 Priorität

  • 3.4 Zuweisung

  • 3.5 Arithmetische Operatoren

  • 3.6 Automatisches Inkrementieren und Dekrementieren

  • 3.7 Vergleichsoperatoren

  • 3.8 Logische Operatoren

  • 3.9 Direkte Konstanten

  • 3.10 Bitweise Operatoren

  • 3.11 Verschiebungsoperatoren

  • 3.12 Ternärer Operator if-else

  • 3.13 String-Operator + und +=

  • 3.14 Häufige Fehler bei der Verwendung von Operatoren

  • 3.15 Typkonvertierungsoperator

  • 3.16 Java hat keine Größe von

  • 3.17 Operator-Zusammenfassung

  • 3.18 Zusammenfassung

3.2 Verwendung von Java-Operatoren

Die Operatoren „=", „==" und „==" können auf alle Objekte angewendet werden.

3.4 Aufgabe

Wenn das Objekt c=d verwendet, zeigen sowohl c als auch d auf das Objekt, auf das ursprünglich nur d zeigte.

Wenn t1 = t2 ( Alias-Phänomen), dann wird durch die Änderung von t1 auch t2 geändert, da t1 und t2 dieselbe Referenz enthalten und auf dasselbe Objekt verweisen.
Wenn Sie die beiden Objekte unabhängig voneinander halten möchten, können Sie dies tun: t1.level = t2.level;

3.6 Automatisches Inkrementieren und Dekrementieren

a = 15,++a、--a: System.out.printf("~output:" + a++);   //~ output:15a = 15,a++、a--: System.out.printf("~output:" + ++a);   // ~ output:16

3.7 Vergleichsoperatoren

Der Inhalt der beiden oben genannten Integer-Objekte ist derselbe, aber die Referenzen sind unterschiedlich, und == und != vergleichen Objektreferenzen (Basistypen vergleichen Werte direkt, ohne Referenzen). Wenn Sie Objektinhalte vergleichen möchten, verwenden Sie die Methode equal().

Hinweis: Das Standardverhalten der equals()-Methode besteht darin, Referenzen zu vergleichen, daher müssen Sie andernfalls die equals()-Methode in Ihrer neuen Klasse überschreiben Es wird nicht der gewünschte Effekt angezeigt. Die meisten Java-Klassenbibliotheken überschreiben die Methode equal(), damit der Inhalt von Objekten verglichen werden kann. Beispiele sind wie folgt:

3.9 Direkte Konstanten

Hexadezimal: Präfix 0x, Oktal: Präfix 0, Binär hat keine direkte Darstellung von Konstanten.

Exponentielle Notationsmethode: 1,39e-43f bedeutet 1,39 * 10-43 e bedeutet „Potenz von 10“.

3.10 Bitweise Operatoren

Bitweise Operationen Das Operandenobjekt Der Operator ist ein binäres „Bit“ (Bit). Java wurde ursprünglich für die Einbettung in eine TV-Set-Top-Box entwickelt, daher wird diese unten orientierte Operation weiterhin beibehalten. Der Operator wird jedoch selten verwendet.

& mit |oder Vermeiden Sie Verwechslungen mit logischem NICHT. Bitweise Operatoren ähneln logischen Operatoren, jedoch ohne den Kurzschlusseffekt.

3.11 Schiebeoperator

Der Operand ist ein binäres „Bit“ und kann nur zur Verarbeitung von Ganzzahltypen verwendet werden (Boolesche Typen funktionieren nicht).

Negative Zahlen müssen zuerst in das Zweierkomplement umgewandelt und dann operiert werden, was ich nicht vorstellen werde.

Nach links verschieben (

Die n Bits der hohen Bits 0 werden verworfen und die n Bits des niedrigsten Bits werden mit n Bits von 0)<<: Die binäre Form von 11 ist 1011 11<<2 Die binäre Form nach 101100 Also

11<<2

= 44 entspricht der Ganzzahl 11*2n Nach rechts verschieben (n Zahlen in den niedrigen Bits werden herausgeschoben und n Nullen werden zu den hohen Bits hinzugefügt )>>:

11 ist 1011 und die binäre Form nach 11>>2 ist 0010. Also

11>>2 = 2

entspricht der Ganzzahl 11/2n Vorzeichenloser Rechtsverschiebungsoperator>>> : Unabhängig davon, ob positiv oder negativ, werden n Zahlen in die niedrigen Bits verschoben und n Nullen zu den hohen Bits hinzugefügt

Hinweis: führt eine vorzeichenlose Rechtsverschiebung bei Bytes oder kurzen Werten durch (
>>>), das Ergebnis ist möglicherweise nicht korrekt. Sie werden zuerst in den Typ int konvertiert, dann nach rechts verschoben und dann abgeschnitten und dem ursprünglichen Typ zugewiesen. In diesem Fall kann ein Ergebnis von -1 erhalten werden. Das Beispiel lautet wie folgt:

Die Ausführungsgeschwindigkeit von Bitoperationen auf Assembly-Ebene ist sehr hoch, sodass Sie während des Interviews möglicherweise fragen: Was ist die gebräuchlichste Methode in Java? Antwort: 2 << 🎜>

Das ist von geringer praktischer Bedeutung

Geschwindigkeitssteigerung ist bedeutungslos, Code ist nicht intuitiv.


3.16 Java hat keine Größe von

Java benötigt den sizeof()-Operator nicht, da alle Datentypen auf allen Maschinen die gleiche Größe haben und keine Notwendigkeit besteht, „Portierungs“-Probleme zu berücksichtigen.

Zusammenfassung: Wissenspunkte, die zu einfach sind und oft verwendet werden, erscheinen nicht in den Notizen von ihnen könnte das Buch genauso gut noch einmal lesen.

Ich habe heute solche Beschwerden bei einer bestimmten Software gesehen

Als ich die Wissenspunkte im zweiten Kapitel sah, dachte ich sofort an Java Programmierideen:

Wenn eine Variable als Mitglied einer Klasse verwendet wird, stellt Java sicher, dass ihr Standardwert angegeben wird, um sicherzustellen, dass es sich um eine Mitgliedsvariable des Basistyps handelt initialisiert (der Anfangswert ist möglicherweise nicht Ihr Wert. Wenn Sie möchten, ist es besser, ihn selbst zu initialisieren). Beachten Sie, dass die Standardinitialisierungsmethode nicht für Feldvariablen gilt, die nicht einer bestimmten Klasse angehören. Wenn Sie die Initialisierung vergessen, gibt Java während der Kompilierung einen Fehler zurück.

Stapel: Der Java-Compiler befindet sich im Allzweck-RAM (Random Access Registers) und muss die Größe aller im Stapel gespeicherten Daten kennen 🎜> Und im Lebenszyklus bewegt sich der „Stapelzeiger“ nach unten, um neuen Speicher zuzuweisen, und nach oben, um Speicher freizugeben. Die Geschwindigkeit ist nach dem Register, in dem grundlegende Datentypen und Referenzen gespeichert sind, an zweiter Stelle.

Lokale Variablen werden zur Laufzeit auf dem Stapel zugewiesen. Sie haben eine große Menge und einen kurzen Lebenszyklus. Wenn die virtuelle Maschine jede lokale Variable initialisiert wird eine große Sache sein, aber es ist unsicher, Variablen zu verwenden, ohne sie auf ihre Standardwerte zu initialisieren.


Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Kapitel 3 der Gedankenzusammenfassung zur Java-Programmierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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