Ich habe einen Monat gebraucht, um alle großen Leute um mich herum nach dem Weg zum Selbststudium von Java von Grund auf zu fragen, geeignet für Programmierer zum Einstieg und für Fortgeschrittene, Java-Lernweg, neue Version 2024

Als Java-Programmierer, der eine Karriere als Java-Programmierer anstrebt, stehen Sie möglicherweise am Anfang Ihrer technischen Karriere oder haben bereits den Einstiegspfad durchlaufen und freuen sich darauf, die Schwelle zum Aufstieg zu überschreiten?

Unabhängig davon, in welcher Phase Sie sich befinden, ist ein klarer Lernweg von entscheidender Bedeutung. Durch die Bitte um Rat bei vielen Branchenführern, wiederholte Erkundungen und Übungen haben wir eine Reihe von Java-Lernwegen zusammengefasst, die für Selbstlerner ohne Grundkenntnisse geeignet sind Die vierjährigen Studiengänge sind auch für Neuanfänger geeignet. Lernweg vom Junior zum F&E-Experten.

Nachfolgend finden Sie eine detaillierte Karte der Route, die Ihnen hoffentlich dabei helfen wird, diese Reise zu beginnen und in den kommenden Jahren weiter voranzukommen. 

F1 – Können Sie sich vorstellen?

Hallo zusammen, ich bin Xiao Ming (Xiao Mings Java-Anfragepfad), ein Back-End-F&E-Experte bei einem großen Internetunternehmen, 2022 Blog Star TOP3/Blog-Experte/CSDN-Back-End-Content-Partner, InfoQ (Geek Time) unterzeichneter Autor , Alibaba Cloud hat Blogger mit 50.000 Fans im gesamten Netzwerk unter Vertrag genommen.

Als Veteran mit 8 Jahren Entwicklungserfahrung konzentriert er sich auf Interviews/Back-End/Quellcode/Architektur/Algorithmen und ist gut in der Befragung von Hochsicherheits-/Verfügbarkeits-/Parallelitäts-/Leistungsarchitekturdesign und -entwicklung, Systemoptimierung und Stabilitätskonstruktion.

Wenn Sie der Meinung sind, dass dieser Artikel für Sie nützlich ist, folgen Sie ihm , sammeln Sie ihn und liken Sie ihn ~

F2 – Überblick über das Java-Full-Stack-Wissenssystem

Überblick über das Java-Wissenssystem von Xiaoming

F3 – Welche Art von Menschen eignen sich zum Lernen?

  • Arbeitssuchende : Helfen Sie dabei, schnell ein Wissenssystem aufzubauen und systematisch anzugreifen, um schneller Angebote zu erhalten
  • Interviewer : Hilft bei der schnellen Identifizierung von Kandidaten
  • Anfänger : Bauen Sie ein Wissenssystem auf und gewinnen Sie an der Startlinie
  • Aktuelle Mitarbeiter/möchten im Unternehmen aufsteigen/planen, den Arbeitsplatz zu wechseln : Nach Jahren der Entwicklung ist das Wissenssystem noch nicht etabliert.

F4 – Knowledge Brain Map [Es gibt viele Inhalte, es wird empfohlen, sie zuerst zu speichern und dann zu lesen]

Computerarchitektur und C-Sprache

  • Computerarchitektur: Prinzipien der Computerkomposition, Computerarchitektur (ISA-Befehlssatz, Intel-Entwicklungshandbuch), CSAPP (tiefes Verständnis von Computersystemen), Assemblersprache, Kompilierungsprinzipien (ELF, Assembler), Betriebssystem
  • C-Sprache: Zeiger, Strukturen, C-Sprache in Assemblersprache (Kompilierungsprinzipien, Anweisungen)

Datenstrukturen und Algorithmen

  • Datenstruktur: verknüpfte Liste, Warteschlange, Stapel, Hash-Tabelle, Baum, Diagramm, Zeichenfolge, monotoner Stapel, Wörterbuchbaum, Liniensegmentbaum, Union-Lookup-Set
  • Algorithmen: Sortieren, Auswahl, String-API, Greedy, DFSBFs, Rekursion, Backtracking, dynamische Programmierung, Vollständigkeit, Iteration, Doppelzeiger

Java-Sprachfunktionen

  • Grundlegende Java-Syntax: Arrays, objektorientierte Programmierung, erweiterte Funktionen von Klassen, Ausnahmebehandlung, allgemeine Datenstruktur-APIs
  • Erweiterte Java-Funktionen: Lambda, Stream, Flussprogrammierung, funktionale Programmierung, reaktive Programmierung, asynchrone Programmierung, Netzwerkprogrammierung AIO/BIO/NIO
  • Java-Threads: Thread, ThreadLocal, Synchronized, Runable, java.util.concurrent, Lock, Executor, ConcurrentHashMap, LinkedBlockingDeque, Java-Threads und Linux-Threads

JVM

  • HotSpot: HotSpot-Kernel, HotSpot-Start, HotSpot-Systeminitialisierung, HotSpot-Oops-Modul, Klass-Framework, Objektidentifikationsmechanismus
  • JVM-Spezifikationen: OOM (OutOfMemoryError), StackOverflowError, Garbage-Collection-Algorithmus, Garbage Collector, Befehlssatz, Interpreter, JIT, Bytecode-Befehlssatz, Bytecode-Ausführungs-Engine, Objektspeicherlayout, Laden von Klassen, Verknüpfung, Initialisierung, Erstellung des Objektprozesses, Laufzeitdatenbereich (Programmzähler, JVM-Stack, lokaler Methodenstapel, Heap, Methodenbereich, Laufzeitkonstantenpool, direkter Speicher)
  • Tools zur Überwachung virtueller Maschinen (Optimierungspraxis): Attach, Heap Dump, Jhat, JStack
  • Java-Speichermodell und Threads: JMM, Thread-Implementierung, Thread-Planung, Zustandsübergang, Thread-Sicherheit, Sperroptimierung

MySQL

  • MySQL-Grundlagen: MySQL-Datentypen, Sperrmechanismen, Transaktionen, MVCC (Multi-Version-Parallelitätskontrolle), Speicher-Engines (Innodb, MyISAM)
  • Erweiterte Funktionen von MySQL: Leistungsanalyse von MySQL-Anweisungen, Indizes (eindeutig, abdeckend, geclustert ...), Indexdatenstruktur, optimierte SQL-Leistung, partitionierte Tabellen, Ansichten, Cursor, Zeichensätze, Volltextindizes, verteilte Transaktionen, Cache
  • Tatsächlicher MySQL-Kampf: Datenverteilung, Lastausgleich, Sicherung und Wiederherstellung, Failover, Master-Slave-Replikation, Überwachung, Unterdatenbank und Untertabelle

rahmen

  • SpringBoot: SpringBoot-Starterprinzip, Kernquellcode, automatische Konfiguration
  • Spring, SpringMVC: Spring-Kernprozess, allgemeine Anmerkungen für Spring-Arbeit, zirkuläre Abhängigkeiten und Bean-Definitionsanalyse, IOC-Container-Quellcode, AOP-Quellcode, deklarative Transaktionsquellcode-Interpretation, Tomcats SPI-Mechanismus zum Laden des SpringMVC-Containers, RequestMappingInfo- und HandlerMethod-Zuordnungsbeziehung, HandlerMapping- und HandlerAdapter-Beziehung, Vor-, Mittel- und Nachfilterprinzipien von HandlerInterceptor, Parameter-Parsing-Prinzip von HandlerAdapter, Aufrufprozesskämmung von springmvc und reaktionsfähige Programmierung – WebFlux
  • SpringCloud Alibaba: Nacos-Discovery-Service-Erkennung, Konfigurationscenter Nacos-Config; SkyWalking-Link-Tracking-Übersicht, AssemblyPlugin, Sentinel-Strombegrenzung, Sicherung, Seala-verteilte Transaktion
  • SpringCloud Netflix: Ausführliche Erklärung des Zuul-Routing-Gateways und Quellcode-Analyse, Prinzip des Ribbon-Client-Lastausgleichs, Feign-deklarativer Dienstaufruf, Eureka-Registrierungszentrum, Config-Konfigurationsdienstzentrum und SVN, Git-Integration, Hystrix-Dienstleistungsschalter und Dienstverschlechterung, Bus/Sleuth/ Stream, Microservice-Protokolle, benutzerdefiniertes verteiltes Konfigurationscenter
  • MyBatis: Konfigurationsnutzung, Ausführungsprozess, Quellcode-Analyse, Verbindungspool
  • Dubbo: Dubbo-Architekturprinzipien und -Kern, Dubbo-SPI-Prinzipien, Dubbo-I0C- ​​und AOP-Prinzipien, Dubbo-Dynamikkompilierung, Service-Publishing-Prinzipien, Service-Referenzprinzipien, Cluster-Fehlertoleranz-Design, Service-Degradation-Design, Netzwerkkommunikationsarchitektur, Netzwerkkommunikationskodierung und -dekodierung
  • Zookeeper: Zookeeper-Anweisungen, zkclient, curotor, Clusterwahl, verteilte Sperre

Middleware

  • Redis: Redis-Cache-Lawine, Cache-Aufschlüsselung, Cache-Vorwärmung, Hotspot-Schlüssel, Cache-Downgrade, Kurzlink, verteilter Lock-Flash-Verkauf, Reduzierung des Vorbestands, Off-Heap-Cache + Redis-Architekturdesign, dynamische Redis-Aktualisierung, Redis und DB Double-Write Konsistenzcharakter, abgelaufene Löschstrategie, Cluster-Datenversatz
  • Interpretation des Redis-Kernquellcodes, String/Hash/List/Set/ZSet-Datenstruktur, Kernel- und Epoll-Multiplexmechanismus
  • RabbitMQ, RocketMQ, Kafka, Kompromisse bei Nachrichtenveröffentlichung und -verbrauch, Nachrichtenablehnung, Anwendungsentkopplungspraxis, Clustering und Spiegelwarteschlangenpraxis
  • RocketMQ: Nachrichtenspeichermechanismus, mehrere Nachrichtenmodi, Hochverfügbarkeitsmechanismus, Lastausgleichsmechanismus für Anbieter und Verbraucher, Nachrichtenfilterung TAG/SQL und Klassenfilterungsmodus
  • Kafka: Kafkas Produzenten und Konsumenten, erweiterte Funktionen und Cluster. Praktischer Kampf: Umgang mit Nachrichtenwiederholungsversuchen (sequentiell/außerhalb der Reihenfolge/Warteschlange für tote Buchstaben), Lösung von häufig in Projekten auftretenden Verbrauchs-Idempotenzproblemen, Aufbau zuverlässiger Datenübertragungscluster, Reduzierung der Spitzenlast und Talfüllung, Integration mit Spring und Mirror Warteschlangen
  • ngnix: Nginx-Prozessmodell und -konfiguration, Standortregeln, Rewrite-Analyse und andere dynamische und statische Trennung, Reverse-Proxy und domänenübergreifend
  • Tomcat: HTTP-Anforderungsanalyse- und -verarbeitungsprozess, Tomcat-Kernkomponenten, Klassenlademechanismus und Quellcode-Analyse, BIO/NIO-Quellcode, Tomcat-Cluster und Sitzungsreplikationslösung
  • Unterdatenbank und Tabelle: mycat: implementiert MySQL-Lese-/Schreibtrennung, Datenbank-Sharding, globale Tabellen, ER-Tabellen und Sharding-Mechanismus-Analyse; sharding-jdbc: Engine-Prinzipien und Daten-Sharding, Lese-/Schreibtrennung, Orchestrierungsverwaltung und Verteilungstransaktion und Datendesensibilisierung
  • Kubernetes (K8S): Kubernetes-Cluster-Management-Lösung in Aktion
  • Docker: Grundoperationen, Docker-Datei, Netzwerkspeicher, Docker Compose, Microservices und Docker-Integration zur Erzielung einer dynamischen Erweiterung
  • Elastic: ElasticSearch: Prinzipien, verteiltes CRUD, Indexverwaltung, Sharding, Suchoptimierung; Elastic-Job

 Die Architektur

  • Systemdesign: hohe Verfügbarkeit, hohe Parallelität, hohe Leistung, hohe Skalierbarkeit, hohe Sicherheit und Vermeidung von Kapitalverlusten
  • Architekturdesign: Auswahl, Lastausgleich, Strombegrenzung, Leistungsschalter, Downgrade, Clustering, Failover, Notfallwiederherstellung und -sicherung, Überwachungsprotokolle, Datensicherheit
  • Überwachung: Grafana, CAT, Kibana, LoadRunner, Logstash, Pinpoint, ZipKin, JMeter
  • Integration: Nginx, DNS, Kubernetes, Docker, Tomcat, JenKins, Maven, JBOSS, Gradle, Git, SVN, Alibaba Cloud, Huawei Cloud, Tencent Cloud

 Soft Skills

  • UML-Nutzung
  • PPT-Montage, Vorträge, Verfassen technischer Designdokumente, Anforderungsverständnis, Anforderungskommunikation, Verfassen von Architekturdokumenten
  • Verwendung technischer Terminologie, Management, leistungsorientierte/Führungsprogrammierung

 Zusammenfassen

Es scheint viel zu sein, aber ein paar Monate können für ein vorläufiges Verständnis ausreichen. Natürlich ist dies nur eine grobe Roadmap. Der Lernrhythmus und die Interessenpunkte werden bei jedem anders sein. In diesem Lernprozess müssen Sie verstehen, was es bedeutet ist. Nun, wissen Sie, wie man es benutzt, verstehen Sie seine zugrunde liegenden Prinzipien, verstehen Sie seine allgemeinen Probleme, seien Sie mit den Lösungen für die Probleme vertraut usw.

Lassen Sie uns darüber reden: Ganz gleich, in welchem ​​Stadium Sie sich befinden, Sie müssen Ihre Neugier und Begeisterung für Technologie bewahren, die Initiative ergreifen, neue technische Bereiche zu erkunden und zu praktizieren, und den Mut haben, es auszuprobieren, und Ausdauer sind wesentliche Eigenschaften, um an die Spitze zu gelangen.

Supongo que te gusta

Origin blog.csdn.net/FMC_WBL/article/details/135318746
Recomendado
Clasificación