Heim  >  Artikel  >  Java  >  Eine kurze Zusammenfassung der Java-Grundkenntnisse

Eine kurze Zusammenfassung der Java-Grundkenntnisse

黄舟
黄舟Original
2016-12-21 11:45:351215Durchsuche

Eine Zusammenfassung der Grundkenntnisse von AVA

In einem unabhängigen Originalprogramm kann es nur eine öffentliche Klasse geben, es können jedoch viele nicht öffentliche Klassen vorhanden sein.
Wenn außerdem keine Klasse in einem Java-Programm öffentlich ist, kann der Dateiname des Java-Programms beliebig benannt werden.

Dokumentationskommentare enden mit einem einzelnen Schrägstrich, gefolgt von zwei Sternen (/**), gefolgt von einem Stern, gefolgt von einem einzelnen Schrägstrich (*/). Auf diese Weise kommentierte Inhalte werden als formale Dokumentation des Programms interpretiert und können in die von Tools wie Javadoc generierte Dokumentation aufgenommen werden, um die Hierarchie und Methoden des Programms zu beschreiben.

Java behandelt den Datentyp von Ganzzahlkonstanten als int-Typ. Wenn daher im Programm eine Konstante größer als 2147483647 verwendet wird, tritt beim Kompilieren ein Fehler auf.
Um dieses Problem zu lösen, fügen Sie einfach die Ganzzahl Just hinzu Fügen Sie nach der Konstante ein großes „L“ hinzu, was bedeutet, dass die Konstante eine ganzzahlige Konstante vom Typ long ist.
Der Code für den Maximalwert ist MAX_VALUE und der Minimalwert ist MIN_VALUE. Wenn Sie den Maximal- oder Minimalwert eines bestimmten Typs erhalten möchten, fügen Sie vor diesen Codes einfach den vollständigen Namen der Klasse hinzu, zu der er gehört.

f Seitenwechsel\ Backslash
b gehe ein Leerzeichen zurück' einfaches Anführungszeichen
r gebe "doppeltes Anführungszeichen zurück

hat bereits Datentypvariablen im Programm definiert, wenn Sie Wenn Sie einen anderen Datentyp zur Darstellung verwenden möchten, konvertiert Java
den Datentyp automatisch, wenn die folgenden Bedingungen erfüllt sind:
1. Der Datentyp vor der Konvertierung ist mit dem Typ nach der Konvertierung kompatibel > 2. Die Darstellung Bereich des konvertierten Datentyps ist größer als der Typ vor der Konvertierung

Wenn dieser Variablen ein Wert zugewiesen wird, der den darstellbaren Bereich der Variablen überschreitet, wird diese Konvertierung als einschränkende Konvertierung bezeichnet. Die Genauigkeit der Daten kann werden während des Konvertierungsvorgangs nicht automatisch durchgeführt.

+3; // bedeutet positiv 3
Prioritätsoperator-Klassen-Assoziativität
1 () Klammeroperator von links nach rechts
1 [] Eckiger Klammeroperator von links nach rechts
2 !, + ( positives Vorzeichen), - (negatives Vorzeichen) Unäre Operatoren von rechts nach links
2 ~ Bitlogische Operatoren von rechts nach links
2 ++, -- Inkrement- und Dekrementoperator von rechts nach links
3 *, /, % Arithmetischer Operator von links nach rechts
4 +, - Arithmetischer Operator von links nach rechts
5 <<, >> Bit-Linksverschiebungs- und Rechtsverschiebungsoperatoren von links nach rechts
6 >, >=, <, <= Vergleichsoperatoren von links nach rechts
7 ==, != Vergleichsoperatoren von links nach rechts
8 & (Bit-Operator UND) Bitlogischer Operator von links nach rechts
9 ^ (Bitoperationssymbol XOR) Bitlogischer Operator von links nach rechts
10 | (Bitoperationssymbol OR ) Bitweise logische Operatoren von links nach rechts
11 && Logische Operatoren von links nach rechts
12 ||. Logische Operatoren von links nach rechts
13 ?: Bedingte Operatoren von rechts nach links
14 = Zuweisungsoperatoren von rechts nach links

1. Es werden Typen konvertiert, die weniger Bytes belegen Typen, die mehr Bytes belegen.
2. Der Typ int wird in den Typ float konvertiert.
4 Der Operand wird auch in den Typ „double“ konvertiert.

Der Auswahlwert in der Switch-Anweisung kann nur aus Zeichen oder Konstanten bestehen . Wenn Sie die for-Schleife zum ersten Mal betreten, weisen Sie der Schleifenkontrollvariablen einen Startwert zu wahr (wahr)
, führt die Anweisung im Schleifenkörper weiter aus; wenn der Beurteilungsbedingungswert falsch (falsch) ist, springt er aus der Schleife
und führt andere Anweisungen aus.
3. Nach der Ausführung der Anweisungen im Schleifenkörper ändert die Schleifensteuervariable den Wert der Schleifensteuervariablen
entsprechend den Erhöhungs- oder Verringerungsanforderungen und kehrt dann zu Schritt 2 zurück, um erneut zu beurteilen, ob dies der Fall ist Führen Sie die Schleife weiter aus.

System.arrayCopy(source,0,dest,0,x): Die Bedeutung der Anweisung ist: Kopieren Sie die x Elemente des Quellarrays beginnend mit Index 0
in das Zielarray, vom Unten im Ziel-Array. Der Zugriff beginnt an der Stelle, die der Markierung 0 entspricht.
Arrays.sort (Array-Name) ist die Operation zum Sortieren des Arrays.
Es ist erwähnenswert, dass Java zulässt, dass die Anzahl der Elemente in jeder Zeile eines zweidimensionalen Arrays unterschiedlich ist Programm
Sprache.
„Anonymes Objekt“ ist, wie der Name schon sagt, ein Objekt ohne explizite Deklaration. Leser können
auch einfach als ein Objekt verstehen, das nur einmal verwendet wird, das heißt, dass kein spezifischer Objektname darauf verweist.

Es gibt zwei Möglichkeiten, Objekte zu vergleichen: den „==“-Operator und die „equals()“-Methode. Der „==“
-Operator wird verwendet, um die Speicheradressenwerte von zwei zu vergleichen Unabhängig davon, ob sie gleich sind oder nicht, wird die Methode equal() verwendet, um zu vergleichen, ob der Inhalt zweier Objekte konsistent ist.
dies stellt das aktuelle Objekt dar, und
das sogenannte aktuelle Objekt bezieht sich auf das Objekt, das Methoden oder Eigenschaften in der Klasse aufruft.
Wenn Sie einen bestimmten Konstruktor verwenden möchten, um einen anderen Konstruktor im Programm aufzurufen, können Sie dies dazu verwenden. Die spezifische
Aufrufform lautet wie folgt:
this() ;
Von allen Methoden in einer Klasse wird nur der Konstruktor zuerst aufgerufen, daher muss und kann der Aufruf des Konstruktors nur in der ersten Zeile des Konstruktors erfolgen. Eine Klasse kann statische Codeblöcke verwenden, die in keinem Methodenkörper enthalten sind. , wenn die Klasse geladen wird, wird der statische Codeblock nur einmal ausgeführt. Statische Codeblöcke werden häufig zum Initialisieren von Klassenattributen verwendet. Zum besseren Verständnis dieses Teils können Sie sich weitere Java-Video-Tutorials ansehen.

Obwohl der Konstruktor privat ist, bedeutet dies nicht unbedingt, dass diese Klasse keine instanziierten Objekte erzeugen kann. Es bedeutet lediglich, dass sich der Ort, an dem die instanziierten Objekte erzeugt werden, geändert hat, das heißt, instanziierte Objekte können nur in erzeugt werden diese Klasse.

Wenn interne Klassen deklariert werden, zerstören sie die Struktur des Programms, und Lesern wird oft nicht empfohlen, sie während der Entwicklung zu verwenden.

Sie können auch
eine innere Klasse mit Static deklarieren. Die mit Static deklarierte innere Klasse wird zu einer externen Klasse, aber die mit Static deklarierte innere Klasse kann nicht auf nicht-statische externe Klassenattribute zugreifen.
Innere Klassen können auch von außerhalb der äußeren Klasse aufgerufen werden, indem Objekte erstellt werden,


Wie im ersten Teil erwähnt Für das Java-Video unterstützt Java drei Formen von Kommentaren. Die ersten beiden sind // und /*… */.
Der dritte Weg heißt Dokumentationskommentare. Es endet mit der Flagge „/**„Beginnen Sie mit“*/“. Dokumentationskommentare bieten die Funktionalität,
Programminformationen in das Programm einzubetten. Entwickler können das Javadoc-Tool verwenden, um die Informationen zu extrahieren und sie dann
in eine HTML-Datei zu konvertieren.


Wenn ein Unterklassenobjekt instanziiert wird, ruft es standardmäßig zuerst die Konstruktormethode in der übergeordneten Klasse auf und
ruft dann die entsprechende Konstruktormethode in dieser Klasse auf.
Die Verwendung von super zum Aufrufen des Konstruktors in der übergeordneten Klasse kann nur in der ersten Zeile des Programms platziert werden.


Nachdem die Konstruktormethode in der abstrakten Klasse
deklariert wurde, muss sie explizit in der Unterklasse aufgerufen werden.
Wenn eine Klasse dies nicht tut,
verwenden Sie das Schlüsselwort „extens“, um dies eindeutig anzuzeigen erbt eine andere Klasse. Dann erbt diese Klasse standardmäßig die Object-Klasse.


Die Datenelemente in der Schnittstelle müssen initialisiert werden und alle Datenelemente sind Konstanten.
2. Alle Methoden in der Schnittstelle müssen als abstrakt deklariert werden, das heißt, die Schnittstelle kann keine
allgemeine Methode wie eine abstrakte Klasse haben, sondern muss alle „abstrakte Methoden“ sein.


Schnittstellen verfügen ebenso wie allgemeine Klassen über Datenelemente und Methoden, den Datenelementen müssen jedoch Anfangswerte zugewiesen werden, und
dieser Wert kann nicht geändert werden


Schnittstelle ist ein Mechanismus für Java, um eine Mehrfachvererbung zu implementieren. Wenn eine Klasse jedoch mehrere abstrakte Methoden erben muss, ist dies offensichtlich nicht möglich, daher entstand das Konzept der Schnittstelle. Eine Klasse kann nur
eine übergeordnete Klasse erben, aber mehrere Schnittstellen implementieren.
In ähnlicher Weise wird auch die Schnittstellenerweiterung (oder Vererbung) über das Schlüsselwort „extends“ implementiert. Interessanterweise
eine Schnittstelle kann mehrere Schnittstellen erben
Die übergeordnete Klasse verwendet ihre eigene Klasse, um ihr eigenes Objekt zu instanziieren
, aber sie weiß nicht, wer ihre eigene Unterklasse ist, also muss sie konvertieren. Es kann ein Fehler auftreten wann


Sie können „instanceof“ verwenden, um zu bestimmen, ob eine Klasse eine bestimmte Schnittstelle implementiert, oder Sie können damit bestimmen, ob ein Instanzobjekt zu einer Klasse gehört.


Wie bereits erwähnt, ist Object die übergeordnete Klasse aller Klassen und die toString()-Methode muss überschrieben werden.
Wenn Leser das JDK-Handbuch lesen, werden sie dies im Object finden In der Klasse gibt es eine Gleichheitsmethode. Diese Methode wird verwendet, um zu vergleichen, ob
Objekte gleich sind, und diese Methode muss überschrieben werden


Die Schnittstelle kann nicht direkt instanziiert werden
, da keine vorhanden ist Konstruktormethode in der Schnittstelle, aber gemäß dem Konzept des Objektpolymorphismus kann sie über die Unterklasse der Schnittstelle instanziiert werden



Ausnahmen können in zwei Hauptkategorien unterteilt werden: Java. lang.Exception-Klasse und java.lang .Error-Klasse. Beide Klassen erben
von der Klasse java.lang.Throwable.


Wenn Sie Throws verwenden, um eine Ausnahme in einer Klassenmethode auszulösen, muss diese explizit mit try-catch abgefangen werden,
wo sie aufgerufen wird. Der


jar-Befehl ist ein sehr nützlicher Befehl in Java, mit dem eine große Anzahl von Klassen (.class-Dateien)
komprimiert und dann als .jar-Dateien gespeichert werden können.



Klasse Klassenname erweitert Thread // Erweitert die Unterklasse der Thread-Klasse
{
Modifikator run(){ // Überschreibe die run()-Methode in der Thread-Klasse
// Threaded-Programm;
}
}
Verwenden von start() zum Starten
Es kann auch durch Implementierungen von Runnable implementiert werden
Es gibt keine start()-Methode in der Runnable-Schnittstelle Daher muss eine Klasse, die die
Runnable-Schnittstelle implementiert, auch die start()-Methode in der Thread-Klasse verwenden, um mehrere Threads zu starten. Die
Thread-Klasse implementiert die Runnable-Schnittstelle, was bedeutet, dass die Thread-Klasse auch eine Unterklasse der
Runnable-Schnittstelle ist.


Nachdem eine Klasse die Thread-Klasse geerbt hat, wird nur ein Thread ausgeführt, egal wie oft das Objekt dieser Klasse die start()-Methode aufruft.


new Thread(t).start();//wobei t eine Klasse ist, die die Runnable-Schnittstelle implementiert
Auf diese Weise werden nach mehreren aufeinanderfolgenden Aufrufen mehrere Threads generiert, die Daten teilen


Jeder Thread hat im Allgemeinen fünf Zustände, nämlich Erstellung, Bereit, Ausführung, Blockiert und Beendet.
Zwei Thread-Objekte dürfen denselben Namen haben, der Übersichtlichkeit halber sollte dies jedoch vermieden werden.
Wenn das Programm keinen Namen für den Thread angibt, weist das System dem Thread automatisch einen Namen zu


Mit der Methode isAlive() können Sie testen, ob der Thread gestartet wurde und fängt immer noch an.


Wenn ein Thread-Objekt
vor dem Start die Methode setDaemon(true) aufruft (Aufruf der Methode start()), wird dieser Thread zu einem Hintergrund-Thread.
Wenn im Prozess nur der Hintergrundthread ausgeführt wird, wird der Prozess beendet.
Die Methode „join()“ wird verwendet, um die Ausführung eines bestimmten Threads zu erzwingen (die Ausführung zu erzwingen, bevor der folgende Thread ausgeführt wird).


In der Thread-Klasse finden Sie einen Thread mit dem Namen „sleep( lange Millis) Statische Methode, diese Methode wird verwendet, um den
-Thread in den Ruhezustand zu versetzen.


Wenn ein Thread ausgeführt wird, kann ein anderer Thread die interrupt()-Methode des entsprechenden Thread-Objekts aufrufen, um ihn
zu unterbrechen.


Sie können das Thread-Objekt auch verwenden, um die Methode isInterrupted() aufzurufen, um den Interrupt-Status jedes Threads zu überprüfen.


Sobald der Interrupt-Status markiert ist und der Thread zur unterbrechbaren Blockierung ausgeführt wird (einige Interrupts können nicht unterbrochen werden)
, wird eine Ausnahme ausgelöst, der aktuelle Vorgang beendet und der Status zurückgesetzt.


synchronized(object)
{
Code, der synchronisiert werden muss;
}
Es ist zu beachten, dass der Synchronisationsmonitor im Allgemeinen von jedem Objekt ausgeführt werden kann. Solange es sich um eine eindeutige Konstante handelt, ist dies in Ordnung.
Es wird im Allgemeinen empfohlen, gemeinsam genutzte Ressourcen zu verwenden, auf die gleichzeitig zugegriffen werden kann, um als Synchronisationsmonitore zu fungieren.


Zusätzlich zum Synchronisieren von Codeblöcken können Sie auch Funktionen synchronisieren. Fügen Sie einfach das synchronisierte Schlüsselwort vor der Definition der Funktion
hinzu, die synchronisiert werden muss.


Die Methode wait() bewirkt, dass der aktuelle Thread wartet und die Sperre des Synchronizers aufhebt.
Die notify()-Methode weckt einen einzelnen Thread, der auf dem Synchronizer wartet. Die Wahl des Weckvorgangs ist willkürlich.
notifyAll() weckt alle wartenden Threads.


Es gibt viele Möglichkeiten, den Thread-Lebenszyklus zu steuern, z. B. Suspend-Methode, Resume-Methode und Stop-Methode.
Obwohl das Stoppen das Auftreten eines Deadlocks verhindern kann, weist es auch andere Nachteile auf: Wenn ein Thread ein gemeinsam genutztes Datensegment bearbeitet und vor Abschluss des Vorgangs „gestoppt“ wird, sind die Daten unvollständig.


Abbildung 9-11 Der Lebenszyklus eines Threads


Die Methode zum Beenden eines Threads durch Steuern der Schleifenbedingungen in der Ausführungsmethode wird den Lesern empfohlen
Dies ist auch die in der Praxis am häufigsten verwendete Methode.


Die StringBuffer-Klasse wird für Zeichenfolgen verwendet, deren Inhalt geändert werden kann. Verschiedene andere Datentypen können hinzugefügt und
in die Zeichenfolge eingefügt werden, und der ursprüngliche Inhalt in der Zeichenfolge kann auch transponiert werden . .


Wenn Sie in der tatsächlichen Entwicklung den Inhalt einer Zeichenfolge häufig ändern müssen, müssen Sie die Verwendung der StringBuffer-Klasse in Betracht ziehen, um sie zu implementieren.
Da ihr Inhalt geändert werden kann, kann die Ausführungsleistung beeinträchtigt werden wird höher sein als die der String-Klasse.


exit(int status)-Methode zum vorzeitigen Beenden der virtuellen Maschine. Wenn eine Ausnahme auftritt und Sie die virtuelle
-Maschine beenden möchten, übergeben Sie als Parameter einen Wert ungleich Null.


CurrentTimeMillis-Methode gibt die Zeit in Millisekunden seit 0:00:00 am 1. Januar 1970 zurück, was ein großer Wert vom Typ long ist.


Die Runtime-Klasse kapselt den laufenden Prozess des Java-Befehls selbst und viele seiner Methoden werden mit den Methoden in System
dupliziert. Sie können eine Runtime-Instanz nicht direkt erstellen, aber Sie können über die statische Methode Runtime.getRuntime einen Verweis auf das laufende Runtime-Objekt erhalten.


Die getInputStream()-Methode kann einen Eingabestream abrufen. Der von der getInputStream()
-Methode für das Socket-Objekt des Clients erhaltene Eingabestream ist tatsächlich der vom Server zurückgesendete Datenstream. Die getOutputStream()-Methode ruft einen
-Ausgabestream ab. Der von der getOutputStream()-Methode auf dem Client-Socket-Objekt zurückgegebene Ausgabestream ist der Datenstream, der an den
-Server gesendet wird.


Steckdosen haben zwei Hauptbetriebsmodi: verbindungsorientiert und verbindungslos.


Verbindungslose Vorgänge verwenden das Datagrammprotokoll. Ein Datagramm ist eine unabhängige Einheit, die alle
Informationen für diese Lieferung enthält.


Verbindungsorientierte Vorgänge nutzen das TCP-Protokoll. Ein Socket in diesem Modus muss vor dem Senden von Daten eine Verbindung mit dem Ziel-Socket
herstellen. Sobald die Verbindung hergestellt ist, können Sockets eine Stream-Schnittstelle verwenden.

Das Obige ist eine kurze Zusammenfassung der Java-Grundkenntnisse. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).

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
Vorheriger Artikel:Java-NamenskonventionNächster Artikel:Java-Namenskonvention