„Der beste Weg zu lernen ist, Bücher zu lesen.“ Dies ist meine erste Erfahrung, nachdem ich alleine gelernt und einige Erfahrungen gesammelt habe. Persönlich denke ich, dass das Lesen von Büchern zwei Vorteile hat:
Ein Buch, das veröffentlicht werden kann, muss wiederholt durchdacht, verfeinert und rezensiert worden sein. Aus professioneller Sicht ist der Wert eines guten Buches daher weitaus höher andere Materialien.
Es ist praktisch, den Code selbst in das Buch einzugeben
„Der beste Weg, sich nach dem Lesen des Buches wieder zu verbessern, besteht darin, einige verwandte gute Blog-Beiträge zu lesen.“ Schritt des Lernens, weil Ein guter Blog-Beitrag ist oft eine Zusammenfassung und Verfeinerung, um den Inhalt des Buches zu klären meine eigenen Lernmethoden hier, daher werde ich nicht auf Details eingehen.
Viele Programmierer verspüren oft den Drang, Bücher zu lesen, wissen aber nicht, welche Bücher sie lesen sollen. Im Folgenden werde ich Java-Programmierern einige gute Bücher empfehlen (der Autor jedes Buches wird fett und rot hervorgehoben). , darunter die meisten Bücher, die ich normalerweise lese. Es kann als kleine Zusammenfassung und Reflexion der Bücher angesehen werden, die ich normalerweise lese.
Es gibt viele Bücher auf dem Markt, die Designmuster erklären. Obwohl ich zuvor gesagt habe, dass das Lesen von Büchern das Beste ist, empfehle ich diesen Blog für Freunde, die sich für Designmuster interessieren. Die Erklärung von Designmustern durch diesen Blogger ist meiner Meinung nach zu 90 % problemlos und es lohnt sich, sie zu lernen:
1 . Die Definition dieses Entwurfsmusters
Erklären Sie die Struktur dieses Entwurfsmusters mit Bildern und Texten
3. Schreiben Sie die Implementierung dieses Entwurfsmusters in detaillierter Codeform
4. Ergänzende Inhalte
Erläutern Sie die Vor- und Nachteile dieses Entwurfsmusters
Sind die Wissenspunkte, auf die wir achten und die wir über ein Entwurfsmuster lernen, nicht direkt oben?
Ich möchte die Internetnutzer jedoch daran erinnern, dass es viele Möglichkeiten gibt, dasselbe Designmuster zu schreiben. Dies bedeutet nicht, dass nur eine bestimmte Schreibweise das Designmuster ist. Nehmen wir zum Beispiel das Adaptermuster, wir müssen darauf achten, was das Adaptermuster ist und nicht, wie das Adaptermuster geschrieben wird Zum Adaptermuster ist es nicht das Adaptermuster. Denken Sie daran: Wenn Sie Designmuster lernen, werden Sie auf jeden Fall ein tieferes Verständnis für die im Code verwendeten Designmuster haben.
"Detailliertes Verständnis der Java Virtual Machine: Erweiterte Funktionen und Best Practices von JVM"
Wenn Sie nicht damit zufrieden sind, ein Java-Programmierer zu sein, der nur schreiben kann, wenn...sonst... ., möchte aber noch mehr darüber erfahren:
1. Verstehen Sie den zugrunde liegenden Funktionsmechanismus von Java-Code
2. Lokalisieren Sie Leistungsprobleme
3. Führen Sie eine Leistungsoptimierung für das gesamte System durch.
Lösen Sie alle möglichen seltsamen Online- und Offline-Probleme
Machen Sie auf einer höheren Ebene eine für Ihr eigenes Projekt geeignete Maschine aus
Dann ist die Java Virtual Machine eine Technologie, die Sie lernen müssen. Der Autor von „Ausführliches Verständnis der Java Virtual Machine: JVM Advanced Features and Best Practices“ ist Zhou Zhiming. Dieses Buch kann als das beste Buch über Java Virtual Machine bezeichnet werden, das ich in den letzten sechs Monaten geschrieben habe Lesen Sie dieses Buch mindestens 5 Mal. Neben diesem Buch über virtuelle Maschinen in China gibt es tatsächlich noch einige andere Bücher, die ich auch gekauft habe, aber auf den ersten Blick sind viele Inhalte auch im Buch „Vertiefendes Verständnis von Java Virtual Machines“ enthalten. Erweiterte JVM-Funktionen und Best Practices“.
Erwähnenswert ist auch, dass das Buch „In- Depth Understanding of Java Virtual Machine: JVM Advanced Features and Best Practices“ in elektronischer Version verfügbar ist und durch Online-Suche heruntergeladen werden kann. Interessierten Freunden wird jedoch empfohlen, das Buch zu kaufen und zu lesen. Die heruntergeladene elektronische Version ist im Vergleich zur neuesten überarbeiteten Version von „Ausführliches Verständnis der Java Virtual Machine: Erweiterte Funktionen und Best Practices“ der JVM. Es gibt viele neue Ergänzungen des Autors. Es gibt keinen Wissenspunkt.
"HotSpot in Aktion"
Alle Java Virtual Machines folgen den Java Virtual Machine-Spezifikationen. Es gibt Dutzende von Java Virtual Machines auf dem Markt Die im Buch „Advanced Features and Best Practices“ besprochene virtuelle Maschine zielt nicht auf eine bestimmte virtuelle Maschine ab, sondern erklärt die Java Virtual Machine aus der Perspektive der Java Virtual Machine-Spezifikationen.
Die meisten virtuellen Java-Maschinen, die wir normalerweise verwenden und sogar kommerziell nutzen, sind Suns HotSpot. Sie können dies sehen, indem Sie die Befehlszeile mit cmd eingeben und den Befehl „java -version“ verwenden. Wenn Sie tiefer verstehen möchten, wie einige Details der virtuellen Maschine basierend auf den Java Virtual Machine-Spezifikationen implementiert werden, können Sie das Buch „HotSpot Practice“ von Chen Tao lesen. Da der Quellcode von HotSpot jedoch in C/C++ geschrieben ist, müssen die Leser über sehr gute Kenntnisse in C/C++ verfügen. Wenn Sie mit diesen beiden Sprachen nicht sehr vertraut sind, ist die Lektüre dieses Buches möglicherweise keine große Hilfe Du.
Abschließend möchten Sie bei Interesse vielleicht zuerst ein openJDK online herunterladen. Der Quellcode von HotSpot ist darin enthalten.
"Java Concurrent Programming in Practice"
Dieses Buch gehört oft zu den zehn Büchern, die Java-Programmierer unbedingt lesen müssen, aber ich persönlich empfehle dieses Buch nicht sehr.
Der Autor von „Java Concurrent Programming in Practice“ ist Brian Goetz. Ich habe dieses Buch ungefähr zweimal gelesen:
1 Code Weniger
2. Mehr Erklärung und weniger Übung
Ich denke, dass dies das Merkmal von Ausländern ist, die Bücher schreiben. Da Java in nordamerikanischen Ländern (Kanada, den Vereinigten Staaten) entwickelt und gepflegt wird, verfügen Ausländer über ein sehr klares und gründliches Verständnis aller Aspekte des theoretischen Wissenssystems von Java. Öffnen Sie dieses Buch und lesen Sie, was Multithreading, Deadlock, Wettbewerb, Thread-Sicherheit usw. ist. Alle Aspekte von Wissenspunkten werden in viel Text erklärt, was den Leuten das Gefühl gibt, sehr langweilig und schwer zu verstehen zu sein . Die Leser haben erhebliche Fortschritte gemacht. Ich habe dieses Buch zweimal gelesen und es hat die Bedeutung von zehn Zeilen auf einen Blick. Ich werde mich auf die Orte konzentrieren, die mich interessieren.
Auf jeden Fall ist es als Buch, das oft zu den zehn Pflichtbüchern für Java-Programmierer gehört, jedem zu empfehlen.
„Java Multi-Threaded Programming Core Technology“
Gao Hongyan, Autor von „Java Multi-Threaded Programming Core Technology“. Freunde, die Multithreading lernen möchten, ich kann es nur wärmstens empfehlen. Mehr als 20 Multithreading-Blogbeiträge basieren auf diesem Buch und wurden auf der Grundlage dieses Buches verfeinert .
Dieses Buch ist das Gegenteil von „Java Concurrent Programming in Practice“. Dieses Buch zeichnet sich durch großen Code und kleine detaillierte Erklärungen aus. Dies hängt möglicherweise mit dem pragmatischen Stil der von Chinesen geschriebenen Bücher zusammen. In diesem Buch werden Thread-Sicherheit, Synchronisierung, Reentrant, Timer usw. anhand detaillierter Codes erläutert. Unter jedem großen Wissenspunkt werden mehrere kleine Wissenspunkte ausführlich erläutert, was einen sehr praktischen Wert darstellt.
Für diejenigen, die interessiert sind: Ich glaube, dass Ihre Verwendung und Ihr Verständnis von Multithreading auf jeden Fall eine Weile dauern werden, solange Sie dem Code in diesem Buch folgen, um ihn in drei Schritten einzugeben, auszuführen und darüber nachzudenken ein paar große Schritte vorwärts.
Der Nachteil dieses Buches besteht jedoch darin, dass es einige Klassen des Java-Parallelitätspakets wie CountDownLatch, Semphore, CyclicBarrier, Future, Callable usw. nicht abdeckt. Die Schlüssel-CAS und AQS werden nicht angesprochen. und die Implementierung von Schlüsselklassen wird ebenfalls nicht erwähnt. Dies ist natürlich sehr tiefgreifend. Wenn Sie dieses Wissen nach dem Studium dieses Buches weiter studieren und recherchieren können, werden Sie langsam zu einem sehr leistungsfähigen Multithreading-Experten heranwachsen.
„Effective Java Chinese Edition“
Dies ist das einzige Buch, das ich nicht gekauft habe. Ich bin zum ersten Mal in meinem Blog-Beitrag „Java Code Optimization (Langzeit-Update)“ auf dieses Buch gestoßen. Damals sagte ich, dass ich es kaufen wollte, aber ich hatte keine Zeit dafür Ich bin in den letzten zwei Monaten in die Buchhandlung gegangen, schade, ich werde in Zukunft auf jeden Fall Zeit finden, dieses Buch zu kaufen.
Der Autor von „Effective Java Chinese Edition“ ist Joshua Bloch. Er ist der Chefarchitekt von Google und ein super technischer Experte, haha. Da ich dieses Buch nicht gelesen habe, kann ich nichts dazu sagen, aber gemessen an der Beliebtheit dieses Buches und dem Hintergrund seines Autors (noch eines: Dieses Buch ist auch ein Buch, das von Dr. James Gosling, dem Vater von Java, empfohlen wurde). Ich glaube, das muss ein gutes Buch sein, das es wert ist, gelesen zu werden.
Guter Code ist das, was jeder Java-Programmierer anstreben sollte. Es ist nicht so, dass das Schreiben eines guten Codes die Leistung verbessert, verglichen mit dem Schreiben eines schlechten Codes. Durch die Lesbarkeit des Codes können viele potenzielle und unbekannte Probleme vermieden und Zeitaufwand für die Wartung des Codes vermieden werden, nachdem er online geschaltet wurde – dies ist im Hinblick auf Zeitaufwand, Arbeitskosten und Risikokosten sehr hoch.
„Eingehende Analyse von Java Web Technology Insider“
„Eingehende Analyse von Java Web Technology Insider“, Autor Xu Lingbo, Taobao-Ingenieur.
Ich kann dieses Buch in einem Wort zusammenfassen: vollständig. Es ist wirklich umfassend, einschließlich HTTP, DNS, CDN, Static, Jetty, Tomcat, Servlet, Spring, MyBatis usw. Es deckt ein breites Wissensspektrum ab, ist aber nicht wie ein Buch, das sich auf ein bestimmtes Thema konzentriert Wissenspunkt Die Erklärung ist sehr ausführlich, und ich bin der Meinung, dass dieses Buch versucht, einige der Insider-Geschichten der in Java Web verwendeten Technologien zu erklären, damit die Leser ein rationales Verständnis der Technik erhalten Insider-Geschichten zu diesen Wissenspunkten.
Obwohl für jeden Wissenspunkt nicht viel Platz vorhanden ist, werden die wichtigsten Punkte im Wesentlichen abgedeckt. Es ist ein Buch, das wirklich lohnend ist. Wenn Sie mehr über die technischen Details dieser Technologien erfahren möchten, müssen Sie relevante Bücher kaufen oder die Informationen selbst online überprüfen. Es fühlt sich an, als würden Sie versuchen, neue Ideen anzuziehen, oder Sie können sagen, dass ein Meister Sie hineinführt , und Sie üben alleine.
„Grundprinzipien und Fallanalyse der technischen Architektur großer Websites“
Ein Wort, um dieses Buch zu beschreiben, großartig, zwei Worte, um dieses Buch zu beschreiben, sehr großartig; sehr cool. Haha, okay, wenn ich weiter rede, denken andere vielleicht, dass ich ein Troll bin.
Der Autor von „Grundprinzipien und Fallanalyse der technischen Architektur großer Websites“ ist Li Zhihui, ein ehemaliger technischer Experte von Alibaba.
Die meisten Java-Anwendungen werden heutzutage im Web verwendet. Jede größere Webanwendung muss also ein verteiltes System sein. Wie entsteht aus einer kleinen Website eine große Website? Wie halten Sie Ihre Website sicher? Verteilte Systeme nutzen Caches. Welche Caches gibt es? Was ist bei der Verwendung des Caches zu beachten?
Jeder Wissenspunkt über die verteilte Verteilung spiegelt sich in diesem Buch wider. Nur wenn Sie nicht darüber nachdenken können, können Sie es im Grunde ein- oder zweimal lesen Machen Sie sich ein paar Notizen, um zu wissen, was los ist. Nachdem Sie es noch ein paar Mal gelesen haben, wird sich Ihr Verständnis für den Vertrieb definitiv vertiefen. Und es enthält nicht nur verteiltes Wissen, sondern schreibt auch auf sehr bodenständige Weise, wie man ein guter Architekt wird. Tatsächlich denke ich, dass dies nicht nur für Leser gedacht ist, die Architekten werden möchten, sondern auch, um den Lesern etwas zu vermitteln Vorschläge, wie Sie Ihre Meinung besser äußern, wie Sie andere dazu bringen, Ihrer Stimme mehr Aufmerksamkeit zu schenken, wie Sie die Vorteile anderer erkennen und viel daraus gewinnen.
"Großes Website-System und Java-Middleware-Praxis"
Der Autor von "Großes Website-System und Java-Middleware-Praxis" Zeng Xianjie ist der technische Direktor von Taobao Counting, er sollte mindestens P8 haben in Alibaba.
Ein Teil des Inhalts dieses Buches überschneidet sich mit dem vorherigen Buch „Grundprinzipien und Fallanalyse der technischen Architektur großer Websites“ von Li Zhihui, wie z. B. die Entwicklung verteilter Systeme, CDN, CAP-Theorie und BASE-Theorie. usw. Dies zeigt auch, dass es sich um verteilte Systeme oder den Schwerpunkt einer großen Website handelt. Es ist nicht schlecht, sie erneut zu lernen.
Der wichtigste Punkt, der in diesem Buch hervorgehoben werden soll, ist das Wort Middleware. Ihre wichtigste Rolle sollte die Entkopplung und Reduzierung der Abhängigkeit zwischen Modulen sein wird reduziert und jeder kann seine eigenen Funktionen unabhängig entwickeln. Dies kann auch als Ziel und treibende Kraft der Softwareentwicklung bezeichnet werden.
Daher basiert ein Teil des Inhalts dieses Buches auf Middleware und erläutert ausführlich verschiedene Kenntnisse über Middleware und JMS. Es eignet sich für Leser, die mit verteilten Systemen vertraut sind und etwas über Middleware recherchieren möchten. .
„Von Paxos zu ZooKeeper verteilten Konsistenzprinzipien und -praktiken“
„Von Paxos zu ZooKeeper verteilten Konsistenzprinzipien und -praktiken“, Autor Ni Chao, Alibaba-Ingenieur.
Dieses Buch ist ein Buch, das ich kürzlich studiert habe. Es gehört zur Kategorie der verteilten Komponenten und ist natürlich etwas ausführlicher ist auch mein persönliches Interesse. Wenn Sie ein hervorragender Website-Architekt, technischer Leiter eines Unternehmens usw. werden möchten, müssen Sie dieses Wissen natürlich beherrschen.
Dieses Buch beginnt mit der grundlegenden Theorie verteilter Systeme, spricht über den Paxos-Algorithmus und führt ihn schließlich Schritt für Schritt in Zookeeper ein. Natürlich ist es für mich derzeit nicht bequem, weitere Meinungen zu äußern, da ich das zweite Kapitel des Paxos-Algorithmus in diesem Buch noch nicht verstanden habe (der Paxos-Algorithmus ist tatsächlich etwas schwer zu verstehen und nicht leicht zu verstehen). , und die folgenden Kapitel sind noch nicht verfügbar.
Wenn das Unternehmen, in dem Internetnutzer arbeiten, Zookeeper verwendet und Sie sich für Zookeeper interessieren und seine Prinzipien studieren möchten, ist dieses Buch die beste Wahl.
"Lernen Sie MySQL 5.6 von Grund auf"
"Lernen Sie MySQL 5.6 von Grund auf", geschrieben von Liu Zengjie und Li Kun.
Als Java-Programmierer denke ich nicht, dass die Datenbank eine Frage des Datenbankadministrators ist. Umfangreiche Erfahrung in der Optimierung der Datenbankleistung ist ebenfalls eine wesentliche Voraussetzung Programmierer.
Zu den aktuellen Mainstream-Datenbanken gehören natürlich MySQL, das meiner Meinung nach zwei Hauptgründe hat:
1. MySQL ist leichter und kleiner als Oracle ist praktischer zu installieren und zu deinstallieren. Wenn Sie Datenbanken lernen möchten, können Sie es bequem zu Hause lernen. Wenn Ihr Unternehmen Oracle verwendet, achten Sie einfach auf Oracle und Der Unterschied zwischen MySQL ist
2. Mit dem Fortschritt der Umstellung von Alibaba auf IOE im Jahr 2009 werden viele inländische Internetunternehmen MySQL als Datenbank wählen, da MySQL kostenlos ist und Sie es nicht benötigen sich auf Oracle zu verlassen, wenn etwas schief geht
Was ich zum Erlernen von MySQL empfehle, ist „MySQL 5.6 Learning from Scratch“, das ich selbst studiert und gelesen habe, und es ist im Buch enthalten Die Wissenspunkte des Buches sind sehr detailliert und umfassend. Sind diese beiden Punkte nicht die wichtigsten Kriterien für die Auswahl von Büchern?
"Eingehende Analyse des Spring-Quellcodes"
"Eingehende Analyse des Spring-Quellcodes", Autor Hao Jia.
Das Spring-Framework ist so gut gemacht und seine Funktionen sind so leistungsstark, dass viele Entwickler nur Spring kennen und nicht wissen, was eine Factory, ein Singleton und ein Agent ist (meine echte Erfahrung in andere interviewen). Dieses leistungsstarke Framework muss über eine sehr komplexe Implementierung verfügen. Dies führt zu Problemen, sobald Ihr Programm Spring verwendet. Es kann ein Fehler sein, es kann eine Ausnahme sein, es kann sein, dass das Ergebnis der Programmausführung nicht Ihren Erwartungen entspricht und so weiter . Manchmal sind Sie verwirrt. Es scheint keine bessere Lösung zu geben, als Informationen online zu prüfen oder andere zu fragen.
Das Studium des Quellcodes von Spring ist meiner Meinung nach eine gute Möglichkeit, dies zu lernen:
1. Nachdem Sie die interne Implementierung des Frameworks verstanden haben, können Sie die Initiative ergreifen, um Probleme zu lösen , und Sie müssen sich nicht auf andere verlassen
2. Die interne Implementierung des Spring-Frameworks verwendet viele Designmuster und gute Code-Designideen. Dies wird Ihr Code-Schreiben und Ihr Designverständnis erheblich verbessern Muster
3. Das Studium des Spring-Frameworks wird Ihre Fähigkeit, Code zu lesen, erheblich verbessern, solange Sie klar lernen können, wie Spring intern implementiert ist, wird Ihnen der Quellcode eines anderen Frameworks nicht schwer fallen
Alles in allem denke ich, dass die Fähigkeit, Code zu lesen, einer der größten Unterschiede zwischen einem normalen Programmierer und einem guten Programmierer ist. Ersterer wird nur das verwenden, was andere geschrieben haben, während letzterer es nicht nur gut verwenden kann, sondern auch Wenn Sie auch genau wissen, wie die unterste Ebene der von anderen geschriebenen Dinge umgesetzt wird, können Sie auftretende Probleme leicht lösen.
Spring-Quellcode, ich persönlich empfehle das Buch „Eingehende Analyse des Spring-Quellcodes“. Wenn Sie es wirklich gründlich studieren und den Spring-Quellcode klar aufschreiben möchten, befürchte ich, dass es drei oder vier sind Bücher reichen nicht aus. Der Autor hat auf fast 400 Seiten sein Bestes gegeben. Es ist nicht einfach, die Implementierung des Spring-Quellcodes zu erklären ihnen ein tieferes Verständnis der Spring-Implementierung.
Postscript
Die oben genannten sind einige gute, lesenswerte Bücher, die ich Java-Entwicklern empfehle. Aber es gibt keine Java-Grundlagen oder Java-Tutorials in diesen Büchern. Es ist nicht so, dass ich es nicht empfehlen würde, aber es ist mehrere Jahre her, seit ich die grundlegende Java-Technologie selbst gelernt habe, also habe ich alles vergessen, was ich gelesen habe Ich empfehle nicht verantwortungslos jedem einige Bücher, die ich selbst nicht gelesen habe.