Der Zweck des Schreibens dieses Artikels ist es, einige meiner Erfahrungen in der Verwendung von Java im Laufe der Jahre zusammenzufassen, hauptsächlich mit einigen grundlegenden Java -Wissenspunkten. Daher hoffe ich, ihn mit Java -Programmierern zu teilen, die gerade begonnen haben, und potenzielle Anfänger, die beabsichtigen, in die Java -Entwicklungsindustrie teilzunehmen. Ich hoffe, Ihnen einige Erfahrungen zu geben und Sie Java besser lernen zu lassen und besser zu nutzen.
Der Hauptinhalt dieser Einführung ist der J2SE-bezogene Teil. Darüber hinaus werden wir in Zukunft einige J2EE-bezogene Inhalte im Zusammenhang mit jedem Framework in Java einführen.
Nach so vielen Jahren Java -Entwicklung und kombiniert mit einigen Erfahrungen bei der Befragung von Java -Entwicklern denke ich, dass die Hauptsache für J2SE darin besteht, den folgenden Inhalt zu beherrschen.
1. JVM (einschließlich Merkmale jeder Version)
Für diejenigen, die sich gerade mit Java engagieren, müssen JVM-bezogenes Wissen nicht unbedingt zutiefst verstanden werden, sodass Sie ein einfaches Verständnis der darin enthaltenen Konzepte haben können. Für einen leitenden Entwickler mit mehr als 3 Jahren Java -Erfahrung ist es jedoch fast inakzeptabel, JVM nicht zu kennen.
Als Grundlage für die Java -Operation ist es kaum zu glauben, dass Menschen, die JVM überhaupt nicht kennen, die Java -Sprache vollständig verstehen können. Als ich Entwickler mit mehr als 3 Jahren Java-Erfahrung interviewte, war JVM fast eine Muss-Frage. Natürlich ist JVM nicht die einzige Interviewfrage, die die Qualität der technischen Fähigkeiten bestimmt, aber das Niveau der Java -Entwicklungsfähigkeiten nachweisen kann.
In der JVM -Kategorie denke ich, dass das Wissen, das gemeistert werden muss, lautet:
JVM -Speichermodell und Struktur
GC -Prinzip, Leistungsstimmung
Tuning: Thread -Dump, Speicherstruktur analysieren
Klassenbytecode -Struktur der Klassen, Klassenladersystem, Klassenbelastungsprozess, Instanzerstellungsprozess
Methodenausführungsprozess
Neue Funktionen verschiedener Hauptversion -Updates von Java (erfordert ein einfaches Verständnis)
2. Java Operation (Basic Essentials)
Dies kann sehr einfach zu sehen sein. Wer kann kein Java -Programm durchführen? Aber oft führen wir Java -Programme über die IDE aus. Wie führt die zugrunde liegende IDE Java -Programme aus? Viele Menschen verstehen nicht.
Dieser Wissenspunkt ist das grundlegendste, was Java -Entwickler beherrschen müssen. Wenn Sie Anfänger sind, müssen Sie als erstes beibringen, wie Sie Java -Programme in der Kommandozeile ausführen, aber viele Menschen vergessen dies, sobald sie Java gelernt haben und die IDE nutzen. Warum betonen Sie das Wissen? Nachdem Sie den reinsten Weg zum Starten von Java kennen, können Sie die Anzahl der zu diesem Zeitpunkt begonnenen Verzeichnisse analysieren, wie die Benennung ausführen, welche Parameter, unabhängig davon, ob es fehlt usw. Wenn ein Problem mit dem Start vorhanden ist. Dies hilft Ihnen, seltsame mögliche umweltbezogene Probleme in der realen Entwicklung zu lösen.
Das Wissen, das Sie hier beherrschen müssen, ist:
Javac erstellt eine Java -Datei als Klassendatei
Verwendung von Java -Befehlen, So starten Sie die Java -Klasse mit Paket in der Befehlszeile
Die verschiedenen Wege, die am Java -Programm beteiligt sind (ClassPath, Java.library.Path, Heimverzeichnis, in dem Java läuft usw.)
3. Datentyp
Es gibt nicht viel zu diesem Artikel zu sagen, es ist nichts anderes, als die Grundtypen und Objekttypen in Java zu beherrschen. Sie können mehr darüber erfahren, wie JDK automatisch konvertiert, einschließlich Verpackung und Entbindung usw. Sie sollten auch darauf achten, dass Sie das Urteil über gleiche Typen nach dem Packen vermeiden.
Hauptwissen Punkte:
Grundtypen: int, lang, float, doppelt, boolean ,. . .
Entsprechende Objekttypen: Ganzzahl und andere Typen zu Grundtypen Conversion, Packing und Unboxing
Objekttyp: Gleiche, HashCode
Funktionen des String -Typs
4. Objekte und Instanzen, Objekterstellung
In dieser Hinsicht müssen Entwickler die Konzepte von Klasse und Instanz sowie die Unterschiede zwischen ihnen verstehen, was eine Grundlage für die objektorientierten Merkmale von Java ist. Die wichtigsten Wissenspunkte sind:
Klassen- und Instanzkonzepte
Instanzerstellungsprozess:
1. Kein Vererbung: Speicherplatz zuweisen, Variablen initialisieren und Konstruktoren aufrufen
2. Vererbung: Verarbeitet statische Aktionen, weist den Speicherraum zu, definiert Variablen als Anfangswerte, übernimmt die Initialisierung bei der Definition und führt den Konstruktor aus
Punkte zu beachten:
Statische Eigenschaften usw. werden aus Basisklassen-> Unterklassen initialisiert
Merkmale im Zusammenhang mit der standardmäßigen parameterlosen Konstruktionsmethode
5. Zugangskontrolle
Dies ist auch eine Grundlage für Java -Kapselungsfunktionen, und was gemeistert werden muss, sind:
Der Modifikationseffekt von öffentlich geschützten Standardeinstellungen privat für Klasse, Methode und Feld
6. Prozesskontrolle
Die Grundlagen der Java -Prozesskontrolle, obwohl einige Syntaxe nicht unbedingt häufig verwendet werden, müssen sie an den richtigen Stellen verstanden und verwendet werden.
Was gemeistert werden muss, sind:
Syntax für die Prozesssteuerung wie wenn, Schalter, Schleife, für, während
7. Das Konzept der objektorientierten Programmierung
Dies ist ein Kernkonzept von Java, das von jedem Java -Entwickler gemeistert werden muss. Viele Merkmale oder Wissenspunkte in Java beziehen sich auf das Konzept der objektorientierten Programmierung in Java. Nach meinem Verständnis muss ein guter Entwickler nicht nur diese Merkmale (Wissenspunkte) selbst verstehen, sondern auch wissen, wie sich diese Objekte im Konzept der objektorientierten Programmierung in Java widerspiegeln, was für Entwickler die Entwicklungssprache von Java und anderen objektorientierten Programmiersprachen förderlicher ist. Ich habe hier gerade kurz aufgeführt, und die Hauptwissenpunkte umfassen:
Drei wichtige objektorientierte Merkmale: Kapselung, Vererbung und Polymorphismus; Ihre jeweiligen Definitionskonzepte, ihre Eigenschaften reflektieren und ihre jeweiligen Nutzungsszenarien
Das Konzept der statischen Mehrfachverteilung und der dynamischen Einzelverteilung
Konzept und Verwendung von Überlastung
Vererbung: Implementierungen mehrerer Schnittstellen, Vererbung der Einzelbasisklasse
Zusammenfassung, abstrakte Klasse, Schnittstelle
Polymorphismus: Konzept und Verwendung der Methodenabdeckung
Schnittstellenrückruf
8. Statisch
Statische Attribute werden auch häufig bei der täglichen Java -Entwicklung verwendet. Sie müssen die Verwendung mit statischen Schlüsselwörtern verstehen und sie auch in Verbindung mit anderen Schlüsselwörtern verwenden, z. B. ob sie in Verbindung mit Schlüsselwörtern wie Abstract und Final verwendet werden können.
Die wichtigsten Dinge zu meistern sind:
Definition statischer Eigenschaften, Verwendung und der Initialisierung der Klasse beim Laden
Definition und Verwendung statischer Methoden
Definition und Verwendung statischer Klassen
Definitions- und Initialisierungszeitpunkt statischer Codeblöcke
9. Grundkenntnisse Punkte
Hier listen wir hauptsächlich einige verstreute Java -Wissenspunkte auf, die nicht systematisch klassifiziert werden. Es wird auch in der täglichen Entwicklung viel verwendet. In diesem Bereich gibt es tatsächlich viele Inhalte. Derzeit habe ich diese vorerst nur zusammengefasst: hier:
Einschließlich:
Equals, HashCode, String/StringBuffer, endgültig, schließlich endgültig abgeschlossen
10. Sammlungsrahmen
Dies ist ein Teil, der mehr Beherrschung braucht. Es kann gesagt werden, dass es keine Anforderungen für Sammelframeworks gibt, ohne sie zu verwenden. Das ist sehr wichtig. Die Wissenspunkte hier sind jedoch nicht schwierig, aber es ist am besten, die interne Implementierungsmethode für Sammlungen zu verstehen, da dies Ihnen hilft, das entsprechende Framework in verschiedenen Szenarien auszuwählen, um das Problem zu lösen. Wenn Sie beispielsweise eine Reihe von 10.000 Elementen haben, müssen Sie häufig Urteilsvorgänge ausführen. Wenn Sie die Eigenschaften der Sammlung oder interne Implementierung kennen, ist es einfach, die richtige Wahl zu treffen.
Der folgende Inhalt ist hier enthalten (Parallelitätskorrelation ist nicht enthalten):
Das System des Sammlungsrahmens: Basic Collection, Karte
Inhalt bestimmter festgelegter Implementierungen, Listen, festgelegt, bestimmte Implementierungen, interne Strukturen, spezielle Methoden, anwendbare Szenarien usw. abgeben.
Verwendung von Sammlungen usw.
11. Ausnahmeframework
Ausnahmen werden in der Java -Entwicklung möglicherweise nicht so ernst genommen. Im Allgemeinen werden sie bei Ausnahmen direkt geworfen oder einfach fangen und verarbeiten und haben keine großen Auswirkungen auf den Gesamtbetrieb des Programms. In Design und Entwicklung auf Unternehmensebene hängen jedoch das Design und die Handhabung von Anomalien häufig mit der allgemeinen Robustheit des Systems zusammen. Für Entwickler sollte der Umgang mit Ausnahmen in einem guten System einheitlich sein und eine Menge Ausnahmebehandlung überall vermeiden. Bei Systemen sollten Ausnahmen kontrollierbar und einfach zu bedienen und zu warten. Nachdem einige Ausnahmen aufgetaucht sind, sollte es eine Möglichkeit geben, mit ihnen umzugehen und zu wissen, wie man arbeitet und aufrechterhält. Obwohl das Ausnahme-Framework für die gesamte Anwendungsentwicklung auf Unternehmensebene sehr einfach ist, ist die Ausnahmeregelung daher sehr wichtig. Um Ausnahmen gut zu bewältigen, müssen Sie das Ausnahmesystem in Java verstehen.
In diesem Teil gibt es nicht viele Wissenspunkte, die hauptsächlich in diesem Teil meistern, hauptsächlich:
Abnormales System:
Throwierbar
Ausnahme
RunTimeException
Fehler
Der Unterschied zwischen RunTimeException und allgemeiner Ausnahme, spezifischen Verarbeitungsmethoden usw.
12.Java io
IO ist in Java nicht nur einfach zum Lesen und Schreiben von Dateien, sondern enthält auch alle Eingabe- und Ausgabevorgänge wie das Lesen und Schreiben von Socket -Netzwerken. Beispielsweise ist das Lesen von Post -Inhalten in Standard -HTTP -Anforderungen auch ein Ausgabeprozess usw.
Für IO bietet Java nicht nur APIs mit grundlegender Eingabe- und Ausgabe-bezogenen APIs, sondern auch einige vereinfachte Operationsleser- und Schriftsteller-APIs, die auch in einigen Entwicklungen (Projekte mit einer großen Anzahl von IO-Operationen) sehr wichtig sind. Es wird auch (Protokolle, Lesen und Schreiben temporärer Dateien usw.) in die tägliche Entwicklung einbezogen.
Die wichtigsten Wissenspunkte hier sind:
Basic IO -System: Ein einschließlich Eingabestream, OutputStream, Leser/Schriftsteller, Lesen von Dateien, verschiedene Stream -Lesen usw.
Das Konzept von NIO, spezifische Verwendungsmethoden und Nutzungsszenarien
13. Mehrfachfrauen Multi-Threaded
Multithreading ist ein relativ schwieriger Teil in Java. Wenn Multi-Threading ordnungsgemäß verwendet wird, kann es die CPU-Nutzungsrate effektiv verbessern und die Effizienz des Gesamtsystems verbessern, insbesondere wenn eine große Anzahl von IO-Operationen blockiert. Aber es ist auch ein zweischneidiges Schwert. Wenn es nicht gut verwendet wird, wird das System nicht nur nicht wesentlich verbessert oder nicht verbessert, sondern auch Probleme wie das Debuggen zwischen mehreren Threads bewirkt.
Es gibt viele Inhalte im Multithreading. Ich erkläre nur kurz die Wissenspunkte, die in Java in der ersten Verwendung von Multithreading gemeistert werden müssen. Wenn Sie in Zukunft die Möglichkeit haben, einige erweiterte Funktionen im Detail einzuführen, haben Sie eine detaillierte Einführung in die Nutzungsszenarien einiger erweiterter Funktionen.
Multithread -Implementierung und Startup
Unterschied zwischen Callable und Runabel
Syncrhoized, Reentrantlocks jeweiligen Funktionen und Vergleiche
Fadenpool
Erhalten Sie asynchrone Ausführungsergebnisse
gleichzeitiges Paket
sperren
..
14. Netzwerk
Java stellt auch APIs bereit, die das TCP -Protokoll und das UDP -Protokoll direkt bedienen können. Wenn es notwendig ist, die Netzwerkleistung hervorzuheben, kann die Kommunikation direkt mit TCP/UDP verwendet werden. Sie können die Verwendung dieser verwandten APIs sehen, wenn Sie den Quellcode von Tomcat und anderen anzeigen. Im Allgemeinen wird TCP jedoch selten direkt verwendet, und es werden Frameworks wie Mina und Netty zur Verarbeitung verwendet. Da es in diesem Bereich nicht viel Entwicklung gibt, werde ich sie nicht im Detail auflisten.
15. Zeit- und Datumsverarbeitung
Für fast jede Anwendung kann die Zeit- und Datumsverarbeitung nicht vermieden werden, aber die Verwendung zeitbezogener APIs vor JDK8 ist nicht freundlich. In dieser Zeit könnten Zeitrahmen wie Joda ausgewählt werden. Nach der Veröffentlichung von JDK8 integriert die neue Zeit -API im Wesentlichen die Vorteile anderer Frameworks und kann direkt verwendet werden.
Für Java -Entwickler müssen sie mithilfe von APIs mit Zeit und Daten beherrscht.
Die spezifischen Wissenspunkte werden nicht mehr aufgeführt. Ich werde in Zukunft einen speziellen Artikel schreiben, um die Nutzung der Zeit- und Datums -API in JDK8 zusammenzufassen.
16.XML Parsing/JSON Parsing
Tatsächlich ist keiner dieser beiden Inhalte der Inhalt in J2SE, aber in der täglichen Entwicklung ist die Interaktion mit anderen Programmen und Konfigurationsdateien mit der Analyse dieser beiden Formate immer untrennbarer.
Für einen Entwickler können Sie jedoch einige Prinzipien und Methoden von XML/JSON -spezifischem Parsen verstehen, um in jedem bestimmten Szenario den richtigen Weg für Sie zu wählen, um Ihr Programm effizienter und robuster zu gestalten.
XML: Sie müssen die Grundprinzipien des DOM -Parsens und der SAX -Parsen und deren jeweiligen anwendbaren Szenarien verstehen
JSON: Sie müssen die Verwendung einiger häufig verwendeter JSON -Frameworks wie Jackson, Fastjson, GSON usw. verstehen.
17. Maven verwenden
Maven ist kein Inhalt in Java, aber Maven ist revolutionär und bringt große Bequemlichkeit in die Entwicklung von Java. Aus der Einführung und dem Management von Abhängigkeiten können die Aktualisierungen und Veröffentlichungen von Entwicklungsprozessen und sogar von Versionsaktualisierungen die Verwendung von Maven die Komplexität im Entwicklungsprozess erheblich vereinfachen und so viel Zeit sparen. Man kann sagen, dass Maven zur Standardkonfiguration für Java -Entwickler geworden ist. Deshalb betrachte ich Maven auch als Grundkenntnisspunkt für einen Java -Entwickler. Ich werde einige meiner Erfahrungen und Fähigkeiten bei der Verwendung von Maven in der Zukunft hinzufügen, damit ich hier nicht auf Details eingehen werde.
18. Generika
Dies ist ein neues Konzept, das von JDK5 eingeführt wird. Es ist eigentlich ein syntaktischer Zucker. Es wird beim Schreiben von Java -Code ein wenig bequem sein. Im Allgemeinen muss es für die Entwicklung von Anwendungen oder Geschäften nur einfach verwendet werden, und es kann möglicherweise nicht unbedingt zur Definition von Generika verwendet werden. Einige grundlegende öffentliche Komponenten werden jedoch verwendet. Sie können diesen Teil bei Bedarf genauer betrachten. Im Allgemeinen kann es einfach verwendet werden.
19. Markierung
Es wurde auch nach JDK5 eingeführt. Spring ist ein ausgezeichnetes Framework und begann mit XML als Standardkonfigurationsdatei. Nach dem Spring3, insbesondere nach dem Anstieg des Spring-Bootes, wird jedoch zunehmend empfohlen, Anmerkungen zu verwenden, um die XML-Konfigurationsdatei zu vereinfachen. Für Entwickler kann es viel Zeit für die XML -Konfiguration sparen. Der Nachteil ist jedoch, dass die Anmerkung in verschiedenen Klassen verstreut ist. Im Gegensatz zu XML kann es ein globales Verständnis und eine globale Verwaltung aller Konfigurationen haben. Daher gibt es keine Möglichkeit, alle XML vollständig zu ersetzen. Für normale Entwickler können Sie nur Anmerkungen verwenden. Einige Entwickler mit öffentlichen Komponenten müssen möglicherweise die Definition und Implementierung von Anmerkungen verstehen, und Sie können einen genaueren Blick darauf werfen, wenn Sie sie benötigen.
20.RMI
RemotemethodinVocation ist eine Remote -Call -Schnittstelle, die für die Java -Sprache einzigartig ist, und es ist relativ einfach und bequem zu bedienen. Wenn jedoch Situationen mit Cross-Language-Situationen wie Webservice benötigt werden, sind dies erforderlich, um dies zu unterstützen. Im Allgemeinen müssen Programme nicht RMI verwenden, können jedoch in bestimmten Situationen verwendet werden. Ich bin in einem Projekt und verwende RMI, um den Remote -Start und Stopp des Programms zu steuern.
21.Jni
Mit Java Native Interface können lokale Schnittstellenmethoden in Java aufgerufen werden, was im Allgemeinen zum Aufrufen von C/C ++ - Code verwendet wird. Es ist zu beachten, dass das Pfadproblem beim Laden der SO/DLL -Datei in Java nicht kompliziert ist, die Schnittstelle selbst aufzurufen, dauert jedoch häufig viel Zeit, um die erforderliche lokale Schnittstellenbibliothek zu laden.
Das obige ist nur eine kurze Einführung in meine Ansichten und Einführungen zu diesen grundlegenden Java -Wissenspunkten und technischen Punkten. Diese Inhalte stammen alle aus einer Zusammenfassung meiner Verwendung von Java im Laufe der Jahre. Ich hoffe, denen, die gerade Java ausgesetzt waren oder beabsichtigen, sich von Java zu entwickeln. Ich hoffe, Java effizienter zu lernen und zu verwenden und wertvolle Zeit zu verschwenden. Es gibt immer noch einige unvollständige Inhalte, und sie werden in zukünftigen Artikeln hinzugefügt. Aufgrund begrenzter persönlicher Fähigkeiten wird es natürlich einige Fehler und Auslassungen geben. Willkommen bei Correct Me, diskutieren gemeinsam und verbessern Sie diesen Artikel gemeinsam, in der Hoffnung, dass er Menschen in Not wirklich helfen kann.
Die obige Zusammenfassung von Java -Wissenspunkten - einige Vorschläge für Java -Anfänger (müssen für Anfänger lesen) sind alle Inhalte, die ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.