Heim  >  Artikel  >  Java  >  Detaillierte Einführung in den Weg zur Java-Weiterentwicklung

Detaillierte Einführung in den Weg zur Java-Weiterentwicklung

零下一度
零下一度Original
2017-07-23 14:59:001056Durchsuche

Wie man lernt, sich von einem Junior-Java-Programmierer zu einem qualifizierten Architekten zu entwickeln, oder welche Art von technischem Wissen ein qualifizierter Architekt haben sollte. Dies ist nicht nur eine Frage für einen Junior-Programmierer, der gerade erst den Arbeitsplatz betreten hat wird oft von erfahrenen Programmierern gefragt, die nach drei bis fünf Jahren Arbeit verwirrt sind. Ich hoffe, dass dieser Artikel die umfassendste und maßgeblichste Antwort ist, die Sie je gesehen haben.

1: Grundlagen der Programmierung

Ob C oder C++, ob Java oder PHP, wenn Sie ein qualifizierter Programmierer werden möchten, grundlegende Datenstrukturen und Algorithmus-Grundlagen müssen noch vorhanden sein. In den folgenden Artikeln werden häufig verwendete Datenstrukturen und klassische Algorithmen für Sie von der Idee bis zur Implementierung erläutert.

1-1 Gemeinsame Datenstrukturen

Array, verknüpfte Liste, Heap, Stapel, Warteschlange, Hash-Tabelle, Binärbaum usw.

1-2 Algorithmusideen

Analyse und Berechnung der zeitlichen und räumlichen Komplexität des Algorithmus

Algorithmusideen: Rekursion, Rekursion, Erschöpfung, Gier, Teile und Herrsche, dynamische Programmierung, Iteration, verzweigt

1- 3 klassische Algorithmen

Klassische Sortierung: Einfügungssortierung, Blasensortierung, schnelle Sortierung (geteilte Austauschsortierung), direkte Auswahlsortierung, Heap-Sortierung, Zusammenführungssortierung

Klassische Suche: sequentielle Suche, binäre Suche, Binäre Sortierbaumsuche

1-4 Erweiterte Datenstrukturen

B+/B-Zahlen, Rot-Schwarz-Bäume, Diagramme usw.

1-5 Erweiterte Algorithmen

Graph-Tiefensuche, Graph-Breitensuche, topologische Sortierung, Dijkstra-Algorithmus (Single-Source-Shortest-Path), Huffman-Codierung, euklidische Division, minimaler Spannbaum usw.

2: Grundlagen der Java-Sprache

Die Java-Sprache, die vor etwas mehr als 20 Jahren geboren wurde, ist weit verbreitet in Web-Websites, in mobilen Geräten und Desktop-Anwendungen Viele Jahre in Folge stand es an der Spitze der TOBIE-Programmiersprachen-Rangliste und hat kürzlich die Meisterschaft angeführt. Was die herausragenden und markanten Merkmale von Java sind, muss zunächst geklärt werden.

2-1 Grundlegende Syntax

Java-Syntaxformat, Konstanten und Variablen, Variablenbereich, Methoden und Methodenüberladung, Operatoren, Programmflusskontrolle, verschiedene grundlegende Datentypen und Verpackungsklasse

2-2 Wichtig: Sammlungsklasse

Sammlung und verschiedene Listen-, Mengen-, Warteschlangen-, Kartenimplementierungs- und Integrationsbeziehungen, Implementierungsprinzipien

Sammlungen und Arrays

2-3 Andere JavaAPI

String und StringBuffer, System- und Runtime-Klassen, Date- und DateFomat-Klassen

java.lang-Paket

java.util-Paket ( Sammlungsklassensystem, reguläre Ausdrücke, zip , sowie Zeit, Zufallszahlen, Eigenschaften, Ressourcen und Timer usw.)

java.math-Paket

java.NET-Paket

java.text-Paket (verschiedene Formatierungsklassen usw.)

java.security-Paket

2-4 Objektorientiert, schnittstellenorientiert

Die drei Hauptmerkmale von Objekten: Kapselung und Vererbung Und Polymorphismus , Vor- und Nachteile

Wie man eine Klasse entwirft, Gestaltungsprinzipien einer Klasse

dieses Schlüsselwort, letztes Schlüsselwort, statisches Schlüsselwort

Der Instanziierungsprozess eines Objekts

Umschreiben und Überladen von Methoden; der Parameterübergabeprozess von Methoden und Methoden

Konstruktor

Innere Klassen, abstrakte Klassen, Schnittstellen

Polymorphismus von Objekten (Konvertierung zwischen Unterklassen). und übergeordnete Klassen, Verweise auf übergeordnete Kartonklassen), Anwendung abstrakter Klassen und Schnittstellen im Polymorphismus

2-5 JVM-Speichermodell, Garbage Collection

2-6 Über Ausnahmen

Auslösbar/Fehler/Ausnahme, geprüfte Ausnahme vs. ungeprüfte Ausnahme, Abfangen und Auslösen von Ausnahmen, Prinzipien zum Abfangen von Ausnahmen, Verwendung von „finally“

2-7 Multithreading

Konzepte von Threads und Prozessen

So erstellen Sie Multithreading in einem Programm, Thread-Sicherheitsprobleme, Kommunikation zwischen Threads

Thread-Synchronisierung

Analyse des Deadlock-Problems

Thread-Pool

2-8 IO

java.io-Paket, verstehen Sie die Designideen des IO-Systems basierend auf dem Pipeline-Modell und den allgemeinen IO-Klasseneigenschaften und Nutzungssituationen.

Datei- und verwandte Klassen, Byte-Streams InputStream und OutputStream, Zeichen-Streams Reader und Writer sowie entsprechende Puffer-Streams und Pipe-Streams, Byte- und Zeichenkonvertierungs-Streams, Verpackungs-Streams und häufig verwendete Verpackungsklassen

Analysieren Sie die E/A-Leistung

2-9XML

Seien Sie mit den Vor- und Nachteilen von SAX, DOM und JDOM vertraut und können Sie eines davon verwenden, um die XML-Analyse und Inhaltsverarbeitung abzuschließen des Parsens Methodenprinzipien

2-10 Einige erweiterte Funktionen

Reflexion, Proxys, Generika, Aufzählungen, reguläre Java-Ausdrücke

2-11 Netzwerkprogrammierung

Grundsätze und anwendbare Szenarien von Netzwerkkommunikationsprotokollen, Socket-Programmierung und Arbeitsprinzipien von WEB-Servern

2-11 Jede Version von JDK1.5, JDK1.6, JDK1.7 und JDK1.8 ist besser als zur Vorgängerversion Welche neuen Funktionen hinzugefügt und welche Verbesserungen vorgenommen wurden

3: Datenbankbezogen

Wie bereits erwähnt, die Datenstruktur ist einfach wie ein elektronischer Aktenschrank und ein Lager, das Daten gemäß einer bestimmten Datenstruktur organisiert, speichert und verwaltet.

3-1 Theoretische Basis

Prinzipien und Paradigmen des Datenbankdesigns

Transaktionen (ACID, Arbeitsprinzip, Transaktionsisolationsstufe, Sperren, Transaktionsweitergabemechanismus)

3-2 Analyse der Vor- und Nachteile und Nutzungsszenarien verschiedener Datenbanken

MySQL/SQLServer/Oracle und verschiedener NoSQL (Redis, MongoDB, Memcached, Hbase, CouchDB, etc.)

3 - 2 SQL-Anweisungen

Datenbankerstellung, Berechtigungszuweisung, Tabellenerstellung, Hinzufügung, Löschung, Änderung, Abfrage, Verbindung, Unterabfrage

Trigger, gespeicherte Prozeduren, Transaktionssteuerung

3 -3 Optimierung

Indexprinzip und -anwendung, Optimierung großer Tabellenabfragen, Optimierung von Mehrtabellenverbindungsabfragen, Unterabfrageoptimierung usw.

3-4 Unterdatenbank, Untertabelle, Sicherung, Migration

Importieren, Exportieren, Unterdatenbank, Untertabelle, Cold-Standby und Hot-Standby, Master-Slave-Backup, Dual-Machine-Hot-Standby, vertikale Erweiterung, horizontale Erweiterung

3-5 JDBC

JDBC-Verbindung, Anweisung, PreparedStatement, CallableStatement, ResultSet und andere verschiedene Verwendungsarten

Verbindungspool (Konfigurationsnutzung, Implementierungsprinzip)

ORM, DAO

Viertens: JavaWeb Core-Technologie (einschließlich einiger Frontends)

HTML5/Css/js native/jQuery

Ajax (domänenübergreifend usw.)

JSP/JavaBean/Servlet/EL/JSTL /TabLib

JSF

JSON

EJB

Serialisierung und Deserialisierung

Regelmaschine

Suchmaschine

Vorlagenmaschine

Cache

Authentifizierung

Testen

Cluster

Persistenz

Generierung statischer Seitentechnologie

Hohe Leistung

Sicherheit

Transaktions-JTA

Andere Dinge, die Sie tun müssen wissen, wie zum Beispiel: Management JMX, Sicherheit JCCA/JAAS, integrierte JCA, Kommunikation JNDI/JMS/JavaMain/JAF, SSI-Technologie

5. Mainstream-Frameworks und Tools

Struts1/Struts2

Spring (IoC, AOP usw.), SpringMVC

Persistenz: Ruhezustand/MyBatis

Log: Log4j

Unit-Test: JUnit

Nachrichtenwarteschlange: ActiveMQ, RabbitMQ usw.

Lastausgleich: Nginx/HaProxy

Webserver: Tomcat, JBoss, Jetty, Resin , WebLogic, WebSphere usw.

Kommunikation: WebService (cxf Soap, Restful Protocol)

Cache: Redis, Memcached

Workflow: Aktivität, JBPM

Suchmaschine: Lucene, Solr basierend auf Lucene-Kapselung

Vorlagen-Engines: Velocity, FreeMaker

Big Data: Hadoop (HDFS und MapReduce)

Build-Tools: Ant/Maven

6, JavaWeb-Systemdesign und -Architektur

Java-Entwurfsmuster

JAVA- und UML-Modellierung

Serviceorientierte Architektur: SOA/SCA/ESB/OSGI/EAI, Micro Service

Ressourcenorientierte Architektur: ROA/REST

Cloud-orientierte Architektur: COA/Saas/Cloud Computing

Große Website-Lastverteilung, Systemoptimierung usw.

Mehr

Fähigkeit zur Fehlerbehebung:

Anhand der Ausnahmeinformationen und des ungefähren Standorts sollte es möglich sein, die Ursache des Problems schnell zu lokalisieren

Optimierungsfunktionen

Codespezifikation und Codeverwaltung:

verfügt über ein eigenes Codespezifikationssystem und der Code kann gut lesbar sein

Breites Wissen:

Verstehen verschiedene Netzwerkprodukte und -funktionen verstehen, verschiedene Middleware verstehen, wissen, wo die Fallstricke liegen, und mit verschiedenen Technologien vertraut sein, die Vor- und Nachteile der Lösung kennen, wissen, wie man verschiedene Ressourcen integriert und optimale Ergebnisse erzielt.... verschiedene Technologien verstehen und Anwendungsszenarien und verfügen über genügend Berufserfahrung, um verschiedene seltsame Probleme bei der Integration zu lösen

Technisches Management/technischer Direktor:

Produktmanagement, Projektmanagement, Teambildung, Teamverbesserung

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Weg zur Java-Weiterentwicklung. 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
Vorheriger Artikel:Grundlegende Java-SyntaxNächster Artikel:Grundlegende Java-Syntax