Der Unterschied zwischen JDK und JRE:
JRE ist die Umgebung, die für die Ausführung aller JAVA-Programme erforderlich ist. Derzeit hängt die Ausführung von JAVA von JRE ab Auf der Website ist die JRE installiert.
JDK ist ein Toolkit, das für Entwickler bereitgestellt wird. Im Allgemeinen enthält das JDK selbst JRE, aber im Allgemeinen installiert das JDK auch einen anderen Satz von JRE Um eine öffentliche JRE zu werden (wie in der Abbildung gezeigt), muss das JDK von der offiziellen Website von Oracle heruntergeladen werden.
Aktuelle Mainstream-Editoren wie Eclipse finden den Speicherort von JRE und JDK. Natürlich können Sie ihn auch manuell ändern.
Anweisungen zu den für JAVA erforderlichen Umgebungsvariablen:
PATH: (erforderlich) gibt den Pfad zu dem Programm an, das zum Kompilieren und Ausführen des Java-Programms erforderlich ist, normalerweise im jdk-Installationsverzeichnis (Beachten Sie, dass es sich im bin-Ordner von JDK! und JRE befindet! Die derzeit häufig verwendete Einstellungsmethode besteht darin, zunächst eine JAVA_HOME-Variable zu definieren und auf JAVA_HOME in PATH zu verweisen: %JAVA_HOME%/bin
CLASSPATH: (früher erforderlich, jetzt nicht erforderlich) Der Zweck der Festlegung von Classpath besteht darin, dies mitzuteilen Java-Ausführungsumgebung: In welchem Verzeichnis finden Sie das Java-Programm (.class-Datei), das Sie ausführen möchten und das nicht mehr benötigt wird?
JAVA_HOME: (Theoretisch nicht notwendig, tatsächlich notwendig) Legen Sie eine Variable zum Speichern fest Die zum Ausführen des Java-Programms erforderlichen Informationen Der Pfad des Programms eignet sich zum Nachschlagen an anderen Stellen (Sie müssen keine lange Pfadliste eingeben, sondern verwenden einfach die Variable JAVA_HOME direkt. Gleichzeitig rufen viele Programme sie jetzt auch direkt auf). Wenn die Variable JAVA_HOME nicht gesetzt ist, kann es leicht zu Fehlern kommen.
1.Erläuterung der Hauptstruktur von Java
Jede .Java-Datei in Java ist eine Klasse, und ein Java-Projekt besteht aus vielen .Java-Dateien besteht aus Java-Klassen. Im Allgemeinen ist die Hauptstruktur einer Java-Klasse wie folgt:
1. Paketdeklaration: Zu welchem Paket die Java-Klasse in diesem Projekt gehört, dh ihre Position im Projekt; >2. Importiertes Paket: externe Bibliothek, Tool; 3. Definition des öffentlichen Klassenkörpers (oder der Schnittstelle): Der Klassenname und der Name der Java-Datei müssen identisch sein der Hauptinhalt der Java-Datei
4 .Sonstiges: andere Klassendefinitionen und Schnittstellendefinitionen.
Im Java-Projekt sind dies von außen nach innen: Quellordner, Paket (Paket), Klasse (.java, das, woran ich schon lange gearbeitet habe. Nach der Kompilierung). Die kompilierte Klasse (.class) wird im bin-Ordner auf derselben Ebene wie der Quellordner abgelegt. Pakete in verschiedenen Quelldateien können denselben Namen haben, aber Klassen im selben Paket können nicht denselben Namen haben (nicht einmal im selben Paket in zwei verschiedenen Quelldateien)
2 Datentypen
Grundlegende Datentypen 8: 4 Arten von Ganzzahlen, 2 Arten von Gleitkommazahlen, Boolean;
btye-Maximum ist 128-1; kurzes Maximum ist 32768-1; Maximal 2 beginnend mit 10 Ziffern. Achten Sie bei der Berechnung numerischer Werte auf den Bereich der Ganzzahlwerte und denken Sie daran, bei der Zuweisung langer Daten das Konvertierungszeichen hinzuzufügen. Wenn der Wert der Ganzzahl den maximalen Bereich von int überschreitet, wird ein l hinzugefügt Beschreibung muss nach der Ganzzahl hinzugefügt werden;
Gleitkommatyp: Fügen Sie f nach der Dezimalzahl hinzu (das heißt, jedes Element ist eine Zeichenvariable ( PS. Das Hinzufügen einer Ganzzahl bedeutet auch das Hinzufügen von ASCII-Code)) entspricht dem Hinzufügen jedes Zeichens im ASCII-Code (anders als die Addition von Zeichenfolgen!!! Das Hinzufügen von Zeichen und Zeichenfolgen führt zu einer Zeichenfolge)
3. Grundlegende Verpackungsklasse
Es gibt 7 grundlegende, häufig verwendete Paketklassen (achten Sie unbedingt auf Groß- und Kleinschreibung!!!): String, Integer, Boolean, Byte, Character, Double, Number;
4 .Typkonvertierung:
char, int, double usw. können durch erzwungene Konvertierung konvertiert werden, z. B. (int) 'a' , (char) 25; Variablen vom booleschen Typ können nicht durch erzwungene Konvertierung erhalten werden
Die Konvertierung zwischen jeder Variablen und jeder Klasse muss durch Aufrufen der Methoden jedes Objekts erreicht werden. Zum Beispiel: Um Ganzzahl- und Zeichentypen in String-Objekte zu konvertieren, können Sie String.valueOf();
5 verwenden. Es müssen globale Konstanten zugewiesen werden ein Wert bei der Initialisierung; lokal Einer Konstante muss bei der Initialisierung kein Wert zugewiesen werden, ihr kann jedoch nur einmal ein Wert zugewiesen werden.
6. Gültiger Variablenbereich:
Globale Variablen werden in Instanzvariablen und statische Variablen (statische Variablen) unterteilt Namen Instanzvariablen können nur in dieser Klasse verwendet werden.
Lokale Variablen sind nur in dem Codeblock gültig, in dem die Variable definiert ist, d. h. zwischen {{} zwei geschweiften Klammern, beginnend mit der Variablendeklaration.
Eine globale Variable mit demselben Namen wie eine lokale Variable ist im Nutzungsbereich der lokalen Variablen ungültig.
7. Der Unterschied zwischen switch und if elseif
Beide können die gleiche Funktion erreichen, aber logischerweise muss if elseif mit jedem vorhergehenden Element übereinstimmen. Alle Elemente werden überprüft. und Switch verwendet eine bestimmte Suchmethode, um passende Elemente zu finden. Wenn viele Elemente überprüft werden müssen, ist Switch effizienter. Ein weiterer Vorteil von Switch besteht darin, dass der Code klar ist. Der Nachteil besteht jedoch darin, dass es schwierig ist, komplexe Vorgänge auszuführen.
8. Verwenden Sie die foreach-Schleifenmethode
Verwenden Sie die foreach-Schleifenmethode, um Arrays, Objekte usw. schnell zu durchlaufen. Die spezifische Methode ist: for (int x: arr ) {operation} , aber es sollte beachtet werden, dass das foreach-Formular keine Daten schreiben kann
9. Aufzeichnungen gängiger Methoden von String-Objekten (sortiert nach dem Grad der gemeinsamen Verwendung nach persönlichem Verständnis , Parameter und spezifische Verwendung werden nicht erklärt, dasselbe unten)
length() ruft die String-Länge ab;
equals() bestimmt, ob der Inhalt der Zeichenfolgen gleich ist. Beachten Sie, dass Sie das Gleichheitszeichen nicht direkt zum Vergleichen verwenden können. ! ! ! !
replace() Teilstring im String ersetzen;
split(), den String entsprechend den angegebenen Symbolen aufteilen und im Array speichern
toCharArray(), Konvertieren Sie die Zeichenfolge in ein Zeichenarray.
trim() entfernt die Leerzeichen vor und nach der Zeichenfolge. Beachten Sie, dass die Zeichenfolge nicht geändert wird, sondern die entsprechende Kopie zurückgegeben wird. Fangen Sie die Zeichenfolge ab;
toLowerCase() führt die Groß-/Kleinschreibung der Zeichenfolge durch;
indexOf(), lastIndexOf() findet die Teilzeichenfolgenposition in der Zeichenfolge; 🎜>charAt() gibt das Zeichen an der angegebenen Position in der Zeichenfolge zurück;
startsWith() bestimmt, ob der Anfang und das Ende der Zeichenfolge die angegebene Zeichenfolge sind; ( ), Zeichenfolgen in Wörterbuchreihenfolge vergleichen;
10. Aufzeichnungen gängiger Methoden von Arrays-Objekten (sortiert nach dem Grad der gemeinsamen Verwendung nach persönlichem Verständnis, Parameter und spezifische Verwendung werden nicht erläutert )
Arrays.fill(), füllt das Array, kann zur Array-Initialisierung und -Zuweisung verwendet werden;
Arrays.sort(), sortiert das Array; copyOf(), Arrays.copyOfRange sortiert das Array Copy;
11. Achten Sie auf die Verwendung statischer Schlüsselwörter
Eine detaillierte Analyse finden Sie im technischen Blog: http://www.cnblogs.com/dolphin0520/p/3799052 Bei Verwendung von .html
müssen Methoden und Variablen, die außerhalb der Klasse aufgerufen werden sollen, mit dem statischen Begrenzer hinzugefügt werden. Methode) mit dem statischen Begrenzer andere Methoden oder globale Variablen aufrufen muss, dann müssen die aufgerufenen Methoden und globalen Variablen auch mit statischen Methoden geändert werden (dies liegt daran, dass nicht statische Variablen Instanzen erstellen müssen, bevor sie aufgerufen werden können). Wird im Allgemeinen für Klassen (Methoden) verwendet, für die keine Instanzen erstellt werden müssen, z. B. Klassen, die als Werkzeuge verwendet werden.
Es ist notwendig, den Unterschied zwischen statischen und Berechtigungsmodifikatoren zu unterscheiden. Der Zweck von Statik besteht darin, statische Variablen und Methoden zu verwenden, ohne eine Instanz zu erstellen, während Berechtigungsmodifikatoren den Verwendungsbereich der Methoden und Variablen angeben.
12. Beschreibung der Sammlungsklassen von Java zum Speichern von Daten
Arraylist, HashMap und andere Sammlungsklassen sind eine Funktion von Java, können aber nur Referenzdaten speichern. Grunddaten können nicht gespeichert werden. Das heißt: Integer ist in Ordnung, int jedoch nicht.
13. Beschreibung der Berechtigungsmodifikatoren für die Klasse
Für Klassen der obersten Ebene (Klassen auf der ersten Ebene innerhalb des Pakets) ist nur der öffentliche Modifikator verfügbar dass es möglich ist. Diese Klasse wird paketübergreifend verwendet. Wenn public nicht verwendet wird, ist sie standardmäßig im Paket verfügbar. Es gibt höchstens eine öffentliche Klasse in einer .java-Datei. Für innere Klassen von Klassen der obersten Ebene sind die Berechtigungsmodifikatoren privat, geschützt, öffentlich und Standard.
Die Berechtigungsprobleme innerer Klassen müssen eingehend untersucht werden (wenn beispielsweise eine private Variable in der inneren Klasse vorhanden ist und die Variable innerhalb der äußeren Klasse verwendet werden muss usw.), wird dies der Fall sein werden hier vorerst übersprungen.
14. Bestimmen Sie, ob zwei Objekte einer Klasse gleich sind
Mit Ausnahme von Basisvariablen können Referenzvariablen (Objekte) nicht zwei Gleichheitszeichen == verwenden, um zu bestimmen, ob die Wert Für Gleichheit (ob zwei von einer Klasse generierte Objekte gleich sind) müssen Sie die Methode equal verwenden. Es ist jedoch zu beachten, dass die Methode „equals“ allgemein benutzerdefinierter Klassen doppelte Gleichheitszeichen für die interne Beurteilung verwendet. Um den Effekt der Beurteilung zu erzielen, muss der Benutzer „equals“ überladen. (Schreiben Sie einfach eine Methode, um selbst zu beurteilen)
15. Methoden, die häufig in Paketklassen verwendet werden können, die Basisvariablen entsprechen
Ganzzahl
equal(), Vergleichen Sie, ob die Werte zweier ganzzahliger Objekte gleich sind
byteValue(), intValue(), shortValue(), geben Sie den Wert des entsprechenden Typs zurück
toString() , konvertieren Sie das Integer-Objekt in ein String-Objekt (wie toBinaryString(), toHexString(), toOctalString())
Integer.valueOf(), konvertieren Sie das String-Objekt in ein Integer-Objekt
Integer.parseInt(), konvertiert das String-Objekt in eine int-Variable.
Boolean
Byte
Character
Character.inUpperCase(), Character.inLowerCase(), bestimmen, ob es sich um ein Groß- oder Kleinbuchstabenzeichen handelt
Character.toUpperCase(), Character.toLowerCase(), in Groß- und Kleinbuchstaben umwandeln
toString(), Zeichen in Zeichenfolgen umwandeln
Double (Float kann sich auf Doublel beziehen, Methode ist die gleiche)
intValue(), gibt eine Ganzzahlvariable zurück
toString(), gibt einen String zurück
Double.valueOf(), konvertiert ein String-Objekt in ein Doppeltes Objekt
Zusammenfassung: Wenn Sie eine Basisklasse konvertieren müssen, können Sie toString() verwenden, um sie in eine Zeichenfolge umzuwandeln, und dann den valueOf jeder Klasse verwenden, um die Zeichenfolge zu konvertieren in die gewünschte Klasse ein.
16. Häufig verwendete mathematische Berechnungsmethoden
DecimalFormat-Klasse
Jede Methode in der Klasse formatiert eine Zahl und das Ergebnis ist eine Zeichenfolge; >
MatheunterrichtTrigonometrische Funktionsmethode, die verschiedene trigonometrische Funktionsberechnungen durchführen kann, einschließlich Bogenmaß-WinkelaustauschExponentialfunktionsmethode, Quadrat-, Quadratwurzel-, Kubik-, Kubikwurzel-Methode usw .Rundungsfunktionsmethode, Auf- und Abrunden, nächste RundeMaximaler Minimalwert, AbsolutwertZufallszahlenmethode (erzeugt einen beliebigen Doppeltypwert zwischen 0 und 1)ZufallsklassenextInt() gibt eine Ganzzahl zurück, nextLong() gibt eine lange Ganzzahl zurück, nextBoolean() gibt eine boolesche Variable zurück, nextFloat() gibt eine Gleitkommazahl zurück 17. Über das Umschreiben von Methoden (anders als das Überladen!!!)Beim Überschreiben einer Methode können Sie die Modifikatoren und den Rückgabewerttyp der Methode ändern (Parametertyp und -nummer sind unveränderlich). In den meisten Fällen kann die endgültige Methode in der übergeordneten Klasse nicht überschrieben werden (private endgültige Methode ist in der Unterklasse nicht sichtbar). ) kann umgeschrieben werden, was ein Sonderfall ist)
Wenn eine Unterklassenmethode eine übergeordnete Klassenmethode überschreibt, muss der Modifikator der Unterklassenmethode über größere Berechtigungen verfügen als der Modifikator der übergeordneten Klassenmethode
Wenn eine Unterklasse eine übergeordnete Klassenmethode überschreibt und Sie den Rückgabewerttyp in der Unterklassenmethode ändern möchten, muss der Typ eine Unterklasse mit demselben Methodenrückgabewert in der übergeordneten Klasse sein; 🎜>18. Zum Unterschied zwischen Methodenumschreiben und Überladung
In derselben Klasse können Methoden nicht umgeschrieben werden, d Parametertypen in einer Klasse: In derselben Klasse können Methoden überladen sein, d. h. es dürfen mehrere Methoden mit demselben Methodennamen, unterschiedlichen Parametertypen und der gleichen Anzahl von Parametern in einer Klasse vorhanden sein. Das Umschreiben einer Methode umfasst mindestens zwei Klassen, die übergeordnete Klasse und die Unterklasse. Wenn Sie möchten, können Sie den Parametertyp und die Nummer der Methode nicht ändern Zum Überschreiben müssen Sie den Parametertyp und die Parameternummer ändern. Alle Methoden in der übergeordneten Klasse werden in der untergeordneten Klasse vererbt. Wenn also in der übergeordneten Klasse und der untergeordneten Klasse zwei Methoden mit demselben Methodennamen und unterschiedlichen Parametern vorhanden sind, kann davon ausgegangen werden, dass sie zuerst vererbt und dann überladen werden.
19. Abstrakte Klasse (abstraktes Schlüsselwort)
Abstrakte Klassen können nur vererbt werden und haben keine anderen Funktionen, und abstrakte Methoden in abstrakten Klassen werden vererbt. Muss neu geschrieben werden. Eine abstrakte Methode hat keinen Methodenkörper. Wenn eine Klasse abstrakte Methoden enthält, muss die Klasse eine abstrakte Klasse sein.
20. Berechtigungsmodifikator der Schnittstelle (muss aufgelöst werden) Die Methoden in der Schnittstelle sind alle öffentlich und enthalten keine Methodenkörper, die sein müssen Geerbt und neu erstellt.
Lassen Sie uns über die Anwendung sprechen, unabhängig vom Prinzip. Schnittstellen ohne Öffentlichkeit können nur in verschiedenen Klassen im selben Paket verwendet werden. Nur durch Hinzufügen einer öffentlichen Schnittstelle kann die paketübergreifende Verwendung erfolgen, aber nur Schnittstellen mit demselben Namen wie .java können öffentlich verwendet werden. Innerhalb der Schnittstelle können andere Methoden außer statischen Methoden und Standardmethoden keine Methodenkörper haben.
21. Objekttransformation
Objekttransformation ist in Aufwärtstransformation und Abwärtstransformation unterteilt (wird automatisch transformiert) und übergeordnete Klasse Objekte Die Transformation muss berücksichtigen, ob sie zu einem Unterklassenobjekt gehört, bevor sie transformiert werden kann (erzwungene Transformation ist erforderlich). Beispiel: A a = new B();, B ist eine Unterklasse von A, dann wird a schließlich als Objekt vom Typ A behandelt, ist aber im Wesentlichen immer noch Klasse B. Referenzen des übergeordneten Klassentyps können alle Eigenschaften aufrufen In der übergeordneten Klasse definiert, liegt es außerhalb der Reichweite von Methoden und Attributen, die nur in Unterklassen vorhanden sind. Das heißt, a kann von Klasse A geerbte Methoden und Attribute im Typ B aufrufen, aber keine eindeutigen Methoden und Attribute aufrufen Klasse B. Das Gleiche gilt für den Aufruf von Methoden. Angenommen, C erbt von B und von A. Beim Aufruf einer Methode in der Klasse sucht das C-Typ-Objekt c zunächst nach dem C-Typ als Parameter innerhalb des verfügbaren Bereichs (siehe oben). Satz für den verfügbaren Bereich). Wenn die methodenüberladene Version nicht vorhanden ist, wird sie in B umgewandelt und die methodenüberladene Version vom Typ B als Parameter wird durchsucht, bis eine ausführbare methodenüberladene Version gefunden wird vorhanden ist, kann es nicht aufgerufen werden und es wird ein Fehler gemeldet.
22. Über Klassenpakete
In der tatsächlichen Entwicklung sollten Klassenpakete für alle Klassen angegeben werden, und die Paketdeklaration muss die erste Zeile des nicht kommentierten Codes sein In der Datei bestehen alle Klassenpakete aus Kleinbuchstaben. Wenn Sie beim Importieren eines Pakets * verwenden, um alle Klassen im Paket zu importieren, werden Unterklassen nicht importiert. Wenn Sie Unterklassen importieren müssen, müssen Sie sie erneut importieren. Verwenden Sie import static, um statische Mitglieder in eine Klasse zu importieren.
23. In Bezug auf Konstanten
Die durch final definierten Konstanten werden in lokale Konstanten und globale Konstanten eingeteilt, die während ihres Lebenszyklus nicht neu definiert werden können Bei Bedarf können bei jeder Erstellung neue Werte zugewiesen werden. Globale Konstanten werden im Allgemeinen während der Ausführung des Programms nicht geändert.
PS:
Polymorphismus ist nicht vollständig verstanden und muss weiter untersucht werden
Der Berechtigungsmodifikator der Schnittstelle ist nicht vollständig verstanden und muss weiter untersucht werden
Der Unterschied zwischen JDK und JRE:
JRE ist die Umgebung, die für die Ausführung aller JAVA-Programme erforderlich ist. Derzeit hängt der Betrieb jedes JAVA-Programms von JRE ab Auf der offiziellen JAVA-Website ist die JRE installiert.
JDK ist ein Toolkit, das für Entwickler bereitgestellt wird. Im Allgemeinen enthält das JDK selbst JRE, aber im Allgemeinen installiert das JDK auch einen anderen Satz von JRE Um eine öffentliche JRE zu werden (wie in der Abbildung gezeigt), muss das JDK von der offiziellen Website von Oracle heruntergeladen werden.
Aktuelle Mainstream-Editoren wie Eclipse finden den Speicherort von JRE und JDK. Natürlich können Sie ihn auch manuell ändern.
Anweisungen zu den für JAVA erforderlichen Umgebungsvariablen:
PATH: (erforderlich) gibt den Pfad zu dem Programm an, das zum Kompilieren und Ausführen des Java-Programms erforderlich ist, normalerweise im jdk-Installationsverzeichnis (Beachten Sie, dass es sich im bin-Ordner von JDK! und JRE befindet! Die derzeit häufig verwendete Einstellungsmethode besteht darin, zunächst eine JAVA_HOME-Variable zu definieren und auf JAVA_HOME in PATH zu verweisen: %JAVA_HOME%/bin
CLASSPATH: (früher erforderlich, jetzt nicht erforderlich) Der Zweck der Festlegung von Classpath besteht darin, dies mitzuteilen Java-Ausführungsumgebung: In diesem Verzeichnis finden Sie das Java-Programm (.class-Datei), das Sie ausführen möchten und das nicht mehr benötigt wird
JAVA_HOME: (Theoretisch nicht notwendig, tatsächlich notwendig) Legen Sie eine Variable fest, um den Pfad des Programms zu speichern, das zum Ausführen des Java-Programms erforderlich ist, damit an anderen Stellen darauf verwiesen werden kann (keine Notwendigkeit, eine lange Pfadliste einzugeben). Verwenden Sie einfach die Variable JAVA_HOME direkt. Gleichzeitig rufen viele Softwareprogramme jetzt auch direkt die Variable JAVA_HOME auf, die fehleranfällig ist, wenn sie nicht festgelegt wird.
1.Erläuterung der Hauptstruktur von Java
Jede .Java-Datei in Java ist eine Klasse, und ein Java-Projekt besteht aus vielen .Java-Dateien besteht aus Java-Klassen. Im Allgemeinen ist die Hauptstruktur einer Java-Klasse wie folgt:
1. Paketdeklaration: Zu welchem Paket die Java-Klasse in diesem Projekt gehört, dh ihre Position im Projekt; >2. Importiertes Paket: externe Bibliothek, Tool; 3. Definition des öffentlichen Klassenkörpers (oder der Schnittstelle): Der Klassenname und der Name der Java-Datei müssen identisch sein der Hauptinhalt der Java-Datei
4 .Sonstiges: andere Klassendefinitionen und Schnittstellendefinitionen.
Im Java-Projekt sind dies von außen nach innen: Quellordner, Paket (Paket), Klasse (.java, das, woran ich schon lange gearbeitet habe. Nach der Kompilierung). Die kompilierte Klasse (.class) wird im bin-Ordner auf derselben Ebene wie der Quellordner abgelegt. Pakete in verschiedenen Quelldateien können denselben Namen haben, aber Klassen im selben Paket können nicht denselben Namen haben (nicht einmal im selben Paket in zwei verschiedenen Quelldateien)
2 Datentypen
Grundlegende Datentypen 8: 4 Arten von Ganzzahlen, 2 Arten von Gleitkommazahlen, Boolean;
btye-Maximum ist 128-1; kurzes Maximum ist 32768-1; Maximal 2 beginnend mit 10 Ziffern. Achten Sie bei der Berechnung numerischer Werte auf den Bereich der Ganzzahlwerte und denken Sie daran, bei der Zuweisung langer Daten das Konvertierungszeichen hinzuzufügen. Wenn der Wert der Ganzzahl den maximalen Bereich von int überschreitet, wird ein l hinzugefügt Beschreibung muss nach der Ganzzahl hinzugefügt werden;
Gleitkommatyp: Fügen Sie f nach der Dezimalzahl hinzu (das heißt, jedes Element ist eine Zeichenvariable ( PS. Das Hinzufügen einer Ganzzahl bedeutet auch das Hinzufügen von ASCII-Code)) entspricht dem Hinzufügen jedes Zeichens im ASCII-Code (anders als die Addition von Zeichenfolgen!!! Das Hinzufügen von Zeichen und Zeichenfolgen führt zu einer Zeichenfolge)
3. Grundlegende Verpackungsklasse
Es gibt 7 grundlegende, häufig verwendete Paketklassen (achten Sie unbedingt auf Groß- und Kleinschreibung!!!): String, Integer, Boolean, Byte, Character, Double, Number;
4 .Typkonvertierung:
char, int, double usw. können durch erzwungene Konvertierung konvertiert werden, z. B. (int) 'a' , (char) 25; Variablen vom booleschen Typ können nicht durch erzwungene Konvertierung erhalten werden
Die Konvertierung zwischen jeder Variablen und jeder Klasse muss durch Aufrufen der Methoden jedes Objekts erreicht werden. Zum Beispiel: Um Ganzzahl- und Zeichentypen in String-Objekte zu konvertieren, können Sie String.valueOf();
5 verwenden. Es müssen globale Konstanten zugewiesen werden ein Wert bei der Initialisierung; lokal Einer Konstante muss bei der Initialisierung kein Wert zugewiesen werden, ihr kann jedoch nur einmal ein Wert zugewiesen werden.
6. Gültiger Variablenbereich:
Globale Variablen werden in Instanzvariablen und statische Variablen (statische Variablen) unterteilt Namen Instanzvariablen können nur in dieser Klasse verwendet werden.
Lokale Variablen sind nur in dem Codeblock gültig, in dem die Variable definiert ist, d. h. zwischen {{} zwei geschweiften Klammern, beginnend mit der Variablendeklaration.
Eine globale Variable mit demselben Namen wie eine lokale Variable ist im Nutzungsbereich der lokalen Variablen ungültig.
7. Der Unterschied zwischen switch und if elseif
Beide können die gleiche Funktion erreichen, aber logischerweise muss if elseif mit jedem vorhergehenden Element übereinstimmen. Alle Elemente werden überprüft. und Switch verwendet eine bestimmte Suchmethode, um passende Elemente zu finden. Wenn viele Elemente überprüft werden müssen, ist Switch effizienter. Ein weiterer Vorteil von Switch besteht darin, dass der Code klar ist. Der Nachteil besteht jedoch darin, dass es schwierig ist, komplexe Vorgänge auszuführen.
8. Verwenden Sie die foreach-Schleifenmethode
Verwenden Sie die foreach-Schleifenmethode, um Arrays, Objekte usw. schnell zu durchlaufen. Die spezifische Methode ist: for (int x: arr ) {operation} , aber es sollte beachtet werden, dass das foreach-Formular keine Daten schreiben kann
9. Aufzeichnungen gängiger Methoden von String-Objekten (sortiert nach dem Grad der gemeinsamen Verwendung nach persönlichem Verständnis , Parameter und spezifische Verwendung werden nicht erklärt)
length() ermittelt die Länge der Zeichenfolge;
equals() bestimmt, ob der Inhalt der Zeichenfolge gleich ist kann nicht direkt zum Vergleich verwendet werden. Durch die Verwendung des Gleichheitszeichens werden die Speicherorte verglichen! ! ! ! !
replace() Teilstring im String ersetzen;
split(), den String entsprechend den angegebenen Symbolen aufteilen und im Array speichern
toCharArray(), Konvertieren Sie die Zeichenfolge in ein Zeichenarray.
trim() entfernt die Leerzeichen vor und nach der Zeichenfolge. Beachten Sie, dass die Zeichenfolge nicht geändert wird, sondern die entsprechende Kopie zurückgegeben wird. Fangen Sie die Zeichenfolge ab;
toLowerCase() führt die Groß-/Kleinschreibung der Zeichenfolge durch;
indexOf(), lastIndexOf() findet die Teilzeichenfolgenposition in der Zeichenfolge; 🎜>charAt() gibt das Zeichen an der angegebenen Position in der Zeichenfolge zurück;
startsWith() bestimmt, ob der Anfang und das Ende der Zeichenfolge die angegebene Zeichenfolge sind; ( ), Zeichenfolgen in Wörterbuchreihenfolge vergleichen;
10. Aufzeichnungen gängiger Methoden von Arrays-Objekten (sortiert nach dem Grad der gemeinsamen Verwendung nach persönlichem Verständnis, Parameter und spezifische Verwendung werden nicht erläutert )
Arrays.fill(), füllt das Array, kann zur Array-Initialisierung und -Zuweisung verwendet werden;
Arrays.sort(), sortiert das Array; copyOf(), Arrays.copyOfRange sortiert das Array. Erstellen Sie eine Kopie
11. Achten Sie auf die Verwendung statischer Schlüsselwörter
Eine detaillierte Analyse finden Sie im technischen Blog: http://www.cnblogs.com/dolphin0520/p/3799052.html
Bei der Verwendung müssen beispielsweise Methoden und Variablen, die außerhalb der Klasse aufgerufen werden sollen, statische Qualifizierer haben. Wenn eine Klasse (Methode) mit statischen Qualifizierern andere Methoden oder globale Variablen aufrufen muss, dann die aufgerufenen Methoden und globalen Variablen muss auch eine statische Änderung haben (dies liegt daran, dass nicht statische Variablen eine Instanz erstellen müssen, bevor sie aufgerufen werden können). Wird im Allgemeinen für Klassen (Methoden) verwendet, für die keine Instanzen erstellt werden müssen, z. B. Klassen, die als Werkzeuge verwendet werden.
Es ist notwendig, den Unterschied zwischen statischen und Berechtigungsmodifikatoren zu unterscheiden. Der Zweck von Statik besteht darin, statische Variablen und Methoden zu verwenden, ohne eine Instanz zu erstellen, während Berechtigungsmodifikatoren den Verwendungsbereich der Methoden und Variablen angeben.
12. Beschreibung der Sammlungsklassen von Java zum Speichern von Daten
Arraylist, HashMap und andere Sammlungsklassen sind eine Funktion von Java, können aber nur Referenzdaten speichern. Grunddaten können nicht gespeichert werden. Das heißt: Integer ist in Ordnung, int jedoch nicht.
13. Beschreibung der Berechtigungsmodifikatoren für die Klasse
Für Klassen der obersten Ebene (Klassen auf der ersten Ebene innerhalb des Pakets) ist nur der öffentliche Modifikator verfügbar dass es möglich ist. Diese Klasse wird paketübergreifend verwendet. Wenn public nicht verwendet wird, ist sie standardmäßig im Paket verfügbar. Es gibt höchstens eine öffentliche Klasse in einer .java-Datei. Für innere Klassen von Klassen der obersten Ebene sind die Berechtigungsmodifikatoren privat, geschützt, öffentlich und Standard.
Die Berechtigungsprobleme innerer Klassen müssen eingehend untersucht werden (wenn beispielsweise eine private Variable in der inneren Klasse vorhanden ist und die Variable innerhalb der äußeren Klasse verwendet werden muss usw.), wird dies der Fall sein werden hier vorerst übersprungen.
14. Bestimmen Sie, ob zwei Objekte einer Klasse gleich sind
Mit Ausnahme von Basisvariablen können Referenzvariablen (Objekte) nicht zwei Gleichheitszeichen == verwenden, um zu bestimmen, ob die Wert Für Gleichheit (ob zwei von einer Klasse generierte Objekte gleich sind) müssen Sie die Methode equal verwenden. Es ist jedoch zu beachten, dass die Methode „equals“ allgemein benutzerdefinierter Klassen doppelte Gleichheitszeichen für die interne Beurteilung verwendet. Um den Effekt der Beurteilung zu erzielen, muss der Benutzer „equals“ überladen. (Schreiben Sie einfach eine Methode, um selbst zu beurteilen)
15. Methoden, die häufig in Paketklassen verwendet werden können, die Basisvariablen entsprechen
Ganzzahl
equal(), Vergleichen Sie, ob die Werte zweier ganzzahliger Objekte gleich sind
byteValue(), intValue(), shortValue(), geben Sie den Wert des entsprechenden Typs zurück
toString() , konvertieren Sie das Integer-Objekt in ein String-Objekt (wie toBinaryString(), toHexString(), toOctalString())
Integer.valueOf(), konvertieren Sie das String-Objekt in ein Integer-Objekt
Integer.parseInt(), konvertiert das String-Objekt in eine int-Variable.
Boolean
Byte
Character
Character.inUpperCase(), Character.inLowerCase(), bestimmen, ob es sich um ein Groß- oder Kleinbuchstabenzeichen handelt
Character.toUpperCase(), Character.toLowerCase(), in Groß- und Kleinbuchstaben umwandeln
toString(), Zeichen in Zeichenfolgen umwandeln
Double (Float kann sich auf Doublel beziehen, Methode ist die gleiche)
intValue(), gibt eine Ganzzahlvariable zurück
toString(), gibt einen String zurück
Double.valueOf(), konvertiert ein String-Objekt in ein Doppeltes Objekt
Zusammenfassung: Wenn Sie eine Basisklasse konvertieren müssen, können Sie toString() verwenden, um sie in eine Zeichenfolge umzuwandeln, und dann den valueOf jeder Klasse verwenden, um die Zeichenfolge zu konvertieren in die gewünschte Klasse ein.
16. Häufig verwendete mathematische Berechnungsmethoden
DecimalFormat-Klasse
Jede Methode in der Klasse formatiert eine Zahl und das Ergebnis ist eine Zeichenfolge; >
MatheunterrichtTrigonometrische Funktionsmethode, die verschiedene trigonometrische Funktionsberechnungen durchführen kann, einschließlich Bogenmaß-WinkelaustauschExponentialfunktionsmethode, Quadrat-, Quadratwurzel-, Kubik-, Kubikwurzel-Methode usw .Rundungsfunktionsmethode, Auf- und Abrunden, nächste RundeMaximaler Minimalwert, AbsolutwertZufallszahlenmethode (erzeugt einen beliebigen Doppeltypwert zwischen 0 und 1)ZufallsklassenextInt() gibt eine Ganzzahl zurück, nextLong() gibt eine lange Ganzzahl zurück, nextBoolean() gibt eine boolesche Variable zurück, nextFloat() gibt eine Gleitkommazahl zurück 17. Informationen zum Umschreiben von Methoden (anders als beim Überladen!!!) Beim Umschreiben einer Methode können Sie die Modifikatoren und den Rückgabewerttyp der Methode ändern (Parametertyp, die Zahl ist unveränderlich). In den meisten Fällen kann die endgültige Methode in der übergeordneten Klasse nicht überschrieben werden (private endgültige Methoden sind in der Unterklasse nicht sichtbar und können umgeschrieben werden, was ein Sonderfall ist) Methodenpaar der Unterklasse Wenn die Methode der übergeordneten Klasse überschrieben wird, Der Modifikator der Unterklassenmethode muss über größere Berechtigungen verfügen als der Modifikator der Methode der übergeordneten Klasse. Die Unterklasse kehrt beim Überschreiben von der Methode der übergeordneten Klasse zurück. Wenn Sie den Werttyp der Unterklassenmethode ändern möchten, handelt es sich um diesen Typ muss eine Unterklasse desselben Methodenrückgabewerts in der übergeordneten Klasse sein Über den Unterschied zwischen Methodenüberschreibung und -überladungIn derselben Klasse können Methoden nicht überschrieben werden, d. h. es können nicht zwei Methoden mit demselben Methodennamen, derselben Parameteranzahl und denselben Parametertypen in einer Klasse vorhanden sein , eine Klasse Es dürfen mehrere Methoden mit demselben Methodennamen, unterschiedlichen Parametertypen und der gleichen Anzahl von Parametern existieren. Das Umschreiben einer Methode umfasst mindestens zwei Klassen, die übergeordnete Klasse und die Unterklasse. Wenn Sie möchten, können Sie den Parametertyp und die Nummer der Methode nicht ändern Zum Überschreiben müssen Sie den Parametertyp und die Parameternummer ändern. Alle Methoden in der übergeordneten Klasse werden in der untergeordneten Klasse vererbt. Wenn also in der übergeordneten Klasse und der untergeordneten Klasse zwei Methoden mit demselben Methodennamen und unterschiedlichen Parametern vorhanden sind, kann davon ausgegangen werden, dass sie zuerst vererbt und dann überladen werden.
19. Abstrakte Klasse (abstraktes Schlüsselwort)
Abstrakte Klassen können nur vererbt werden und haben keine anderen Funktionen, und abstrakte Methoden in abstrakten Klassen werden vererbt. Muss neu geschrieben werden. Eine abstrakte Methode hat keinen Methodenkörper. Wenn eine Klasse abstrakte Methoden enthält, muss die Klasse eine abstrakte Klasse sein.
20. Berechtigungsmodifikator der Schnittstelle (muss aufgelöst werden) Die Methoden in der Schnittstelle sind alle öffentlich und enthalten keine Methodenkörper, die sein müssen Geerbt und neu erstellt.
Lassen Sie uns über die Anwendung sprechen, unabhängig vom Prinzip. Schnittstellen ohne Öffentlichkeit können nur in verschiedenen Klassen im selben Paket verwendet werden. Nur durch Hinzufügen einer öffentlichen Schnittstelle kann die paketübergreifende Verwendung erfolgen, aber nur Schnittstellen mit demselben Namen wie .java können öffentlich verwendet werden. Innerhalb der Schnittstelle können andere Methoden außer statischen Methoden und Standardmethoden keine Methodenkörper haben.
21. Objekttransformation
Objekttransformation ist in Aufwärtstransformation und Abwärtstransformation unterteilt (wird automatisch transformiert) und übergeordnete Klasse Objekte Die Transformation muss berücksichtigen, ob sie zu einem Unterklassenobjekt gehört, bevor sie transformiert werden kann (erzwungene Transformation ist erforderlich). Beispiel: A a = new B();, B ist eine Unterklasse von A, dann wird a schließlich als Objekt vom Typ A behandelt, ist aber im Wesentlichen immer noch Klasse B. Referenzen des übergeordneten Klassentyps können alle Eigenschaften aufrufen In der übergeordneten Klasse definiert, liegt es außerhalb der Reichweite von Methoden und Attributen, die nur in Unterklassen vorhanden sind. Das heißt, a kann von Klasse A geerbte Methoden und Attribute im Typ B aufrufen, aber keine eindeutigen Methoden und Attribute aufrufen Klasse B. Das Gleiche gilt für den Aufruf von Methoden. Angenommen, C erbt von B und von A. Beim Aufruf einer Methode in der Klasse sucht das C-Typ-Objekt c zunächst nach dem C-Typ als Parameter innerhalb des verfügbaren Bereichs (siehe oben). Satz für den verfügbaren Bereich). Wenn die methodenüberladene Version nicht vorhanden ist, wird sie in B umgewandelt und die methodenüberladene Version vom Typ B als Parameter wird durchsucht, bis eine ausführbare methodenüberladene Version gefunden wird vorhanden ist, kann es nicht aufgerufen werden und es wird ein Fehler gemeldet.
22. Über Klassenpakete
In der tatsächlichen Entwicklung sollten Klassenpakete für alle Klassen angegeben werden, und die Paketdeklaration muss die erste Zeile des nicht kommentierten Codes sein In der Datei bestehen alle Klassenpakete aus Kleinbuchstaben. Wenn Sie beim Importieren eines Pakets * verwenden, um alle Klassen im Paket zu importieren, werden Unterklassen nicht importiert. Wenn Sie Unterklassen importieren müssen, müssen Sie sie erneut importieren. Verwenden Sie import static, um statische Mitglieder in eine Klasse zu importieren.
23. In Bezug auf Konstanten
Die durch final definierten Konstanten werden in lokale Konstanten und globale Konstanten eingeteilt, die während ihres Lebenszyklus nicht neu definiert werden können Bei Bedarf können bei jeder Erstellung neue Werte zugewiesen werden. Globale Konstanten werden im Allgemeinen während der Ausführung des Programms nicht geändert.
PS:
Polymorphismus ist nicht vollständig verstanden und muss weiter untersucht werden
Der Berechtigungsmodifikator der Schnittstelle ist nicht vollständig verstanden und muss weiter untersucht werden