La meilleure façon d'apprendre est de lire des livres
"La meilleure façon d'apprendre est de lire des livres", c'est ma première expérience après avoir étudié seul et acquis une certaine expérience . Personnellement, je pense qu'il y a deux avantages à lire des livres :
1. Les livres qui peuvent être publiés doivent avoir fait l'objet d'une réflexion, d'un polissage et d'une révision répétés. Par conséquent, d'un point de vue professionnel, la valeur d'un bon livre est. bien plus que d'autres informations
2. Il est pratique de taper vous-même le code dans le livre
"La meilleure façon de vous améliorer à nouveau après avoir lu le livre est de lire un bon blog connexe. articles." Personnellement, je pense qu'il s'agit de la deuxième étape de l'apprentissage, car un livre comporte souvent des centaines de pages. Les bons articles de blog sont des résumés et des améliorations après la lecture et l'étude. C'est très utile pour trier le contenu de l'apprentissage. Bien sûr , il ne s’agit pas de votre propre apprentissage, je n’en parlerai plus.
De nombreux programmeurs ont souvent envie de lire des livres, mais ne savent pas quels livres lire ci-dessous, je recommanderai quelques bons livres aux programmeurs Java (l'auteur de chaque livre sera surligné en gras et en rouge). , parmi lesquels La plupart d'entre eux sont des livres que je lis habituellement. Cela peut être considéré comme un petit résumé et des réflexions sur les livres que je lis habituellement.
Il existe de nombreux livres sur le marché qui expliquent les modèles de conception. Même si j'ai déjà dit que lire des livres était le meilleur, pour les amis qui s'intéressent aux modèles de conception, je recommande ce blog. L'explication de ce blogueur sur les modèles de conception est très, très bonne. Je pense que 90 % du contenu est sans problème et mérite d'être appris. L'itinéraire général de son explication des modèles de conception est :
1. la définition du modèle de conception
2. Expliquez la structure de ce modèle de conception avec des images et des textes
3 Écrivez la mise en œuvre de ce modèle de conception sous forme de code détaillé
. 4. Contenu du supplément
5. Expliquer les avantages et les inconvénients du modèle de conception
Les points de connaissances auxquels nous prêtons attention et que nous apprenons sur un modèle de conception ne sont-ils pas juste au-dessus ?
Cependant, je voudrais rappeler aux internautes qu'il existe de nombreuses façons d'écrire le même modèle de conception. Cela ne signifie pas que seule une certaine manière d'écrire constitue le modèle de conception. Prenons l'exemple du modèle d'adaptateur. Lorsque nous prêtons attention au modèle d'adaptateur, nous devons faire attention à ce qu'est le modèle d'adaptateur et non à la façon d'écrire le modèle d'adaptateur. Ne pensez pas que si un certain morceau de code n'est pas écrit conformément. au modèle d'adaptateur, ce n'est pas le modèle d'adaptateur. N'oubliez pas ceci : lorsque vous apprendrez les modèles de conception, vous aurez certainement une compréhension plus approfondie des modèles de conception utilisés dans le code.
"Compréhension approfondie de la machine virtuelle Java : fonctionnalités avancées et meilleures pratiques JVM"
Il convient également de mentionner que le livre « Compréhension approfondie de la machine virtuelle Java : fonctionnalités avancées et meilleures pratiques JVM » est disponible en version électronique et peut être téléchargé en effectuant une recherche en ligne. Cependant, il est recommandé aux amis intéressés d'acheter le livre et de le lire. La version électronique téléchargée est généralement une version plus ancienne que la dernière version révisée de « Compréhension approfondie de la machine virtuelle Java : fonctionnalités avancées et meilleures pratiques JVM ». , il y a de nombreux nouveaux ajouts par l'auteur. Il n'y a aucun point de connaissance."HotSpot en action"
Toutes les machines virtuelles Java suivent la spécification de machine virtuelle Java. Il existe des dizaines de machines virtuelles Java. . Les machines virtuelles abordées dans le livre « Compréhension approfondie des machines virtuelles Java : fonctionnalités avancées et meilleures pratiques JVM » ne sont pas destinées à une machine virtuelle spécifique, mais sont expliquées du point de vue des spécifications de la machine virtuelle Java. La plupart des machines virtuelles Java que nous utilisons habituellement et même commercialement sont le HotSpot de Sun. Vous pouvez le voir en entrant la ligne de commande avec cmd et en utilisant la commande "java -version". Si vous souhaitez avoir une compréhension plus approfondie de la façon dont certains détails de la machine virtuelle sont implémentés sur la base des spécifications de la machine virtuelle Java, vous pouvez lire le livre « HotSpot Practice », écrit par Chen Tao. Cependant, comme le code source de HotSpot est écrit en C/C++, les lecteurs doivent avoir de très bonnes bases en C/C++. Si vous n'êtes pas très familier avec ces deux langages, la lecture de ce livre n'est peut-être pas d'une grande aide. toi. Enfin, si vous êtes intéressé, vous souhaiterez peut-être d'abord télécharger un openJDK en ligne. Le code source de HotSpot s'y trouve."Pratique de programmation simultanée Java"
1. code Moins
2. Plus d'explications et moins de pratique
Je pense que c'est peut-être la caractéristique des étrangers qui écrivent des livres, car Java est développé et maintenu dans les pays d'Amérique du Nord (Canada, États-Unis) , donc les étrangers ne connaissent pas Java. Tous les aspects du système de connaissances théoriques sont maîtrisés très clairement et de manière approfondie. Ouvrez ce livre et lisez ce qu'est le multithreading, ce qu'est l'impasse, ce qu'est la concurrence, ce qu'est la sécurité des threads, etc. Tous les aspects des points de connaissance sont expliqués dans beaucoup de texte, ce qui rend les gens très ennuyeux et difficiles à comprendre. Les lecteurs ont fait des progrès substantiels. J'ai lu ce livre deux fois et il a le sens de dix lignes en un seul coup d'œil. Je me concentrerai sur les lieux qui m'intéressent.
En tout cas, en tant que livre qui figure souvent parmi les dix livres incontournables pour les programmeurs Java, il doit être recommandé à tout le monde.
"Technologie de base de programmation multithread Java"
Ce livre est opposé à "Java Concurrent Programming in Practice". Ce livre se caractérise par un code à grande échelle + une explication détaillée à petite échelle. Cela peut être lié au style pragmatique des livres écrits par des Chinois. Ce livre explique la sécurité des threads, la synchronisation, le réentrant, la minuterie, etc. avec des codes détaillés, et plusieurs petits points de connaissances sous chaque grand point de connaissance sont expliqués en détail, ce qui est une valeur très pratique.
Pour ceux qui sont intéressés, je pense que tant que vous suivez le code de ce livre pour le taper, l'exécuter et y réfléchir en trois étapes, votre utilisation et votre compréhension du multi-threading prendront certainement un quelques grands pas en avant.
Cependant, le défaut de ce livre est qu'il ne couvre pas certaines classes du package de concurrence Java telles que CountDownLatch, Semphore, CyclicBarrier, Future, Callable, etc. Les clés CAS et AQS ne sont pas abordées, et la mise en œuvre de classes clés n'est pas évoquée. Le principe n'a pas non plus été évoqué. Bien sûr, c'est très approfondi. Si vous pouvez continuer à étudier et à rechercher ces connaissances après avoir étudié ce livre, vous deviendrez lentement un expert multi-thread très puissant.
"Édition Java chinoise efficace"
Un bon code est ce que tout programmeur Java devrait rechercher. Ce n'est pas que si j'écris un bon morceau de code aujourd'hui, cela améliorera les performances par rapport à l'écriture d'un mauvais morceau de code. La lisibilité du code peut éviter de nombreux problèmes potentiels et inconnus, ainsi que la maintenance fastidieuse causée par les problèmes après la mise en ligne du code - ce qui est très élevé en termes de coût en temps, de coût de main-d'œuvre et de risque.
"Analyse approfondie de Java Web Technology Insider"
Je peux résumer ce livre en un mot : complet. Il est vraiment complet, incluant HTTP, DNS, CDN, static, Jetty, Tomcat, Servlet, Spring, MyBatis, etc. Il contient de tout. Il couvre un large éventail de connaissances, mais ce n'est pas comme un livre qui se concentre sur un certain. point de connaissance. L'explication est très approfondie et je pense que ce livre essaie d'utiliser une courte longueur pour expliquer certaines des histoires internes des technologies utilisées dans Java Web, afin que les lecteurs puissent avoir une compréhension rationnelle des aspects techniques. à l'intérieur des histoires de ces points de connaissance.
Cependant, bien qu'il n'y ait pas beaucoup d'espace pour chaque point de connaissance, les points clés sont essentiellement couverts. C'est un livre vraiment enrichissant. Si vous souhaitez en savoir plus sur les détails techniques de ces technologies, vous devez acheter des livres pertinents ou vérifier les informations par vous-même en ligne. Vous avez l'impression d'essayer d'attirer de nouvelles idées, ou vous pouvez dire qu'un maître vous guide. , et vous pratiquez seul.
"Principes fondamentaux et analyse de cas de l'architecture technique des grands sites Web"
Une partie du contenu de ce livre chevauche le livre précédent "Principes de base et analyse de cas de l'architecture technique des grands sites Web" de Li Zhihui, comme l'évolution des systèmes distribués, le CDN, la théorie CAP et la théorie BASE, etc. Cela montre également qu'il s'agit de systèmes distribués ou du centre d'intérêt d'un grand site Web. Il n'est pas mauvais de les réapprendre.
Le point clé à souligner dans ce livre est le mot middleware. Le middleware est une chose très importante dans les systèmes distribués. Son rôle le plus important devrait être de découpler et de réduire la force entre les modules. est réduit et chacun peut développer ses propres fonctions de manière indépendante. Cela peut également être considéré comme l'objectif et la force motrice du développement du génie logiciel.
Par conséquent, une partie du contenu de ce livre est basée sur le middleware, expliquant en détail diverses connaissances sur le middleware et JMS. Il convient aux lecteurs familiers avec les systèmes distribués et souhaitant faire des recherches sur le middleware. .
"De Paxos aux principes et pratiques de cohérence distribuée ZooKeeper"
Ce livre est un livre que j'ai étudié récemment. Comme le "Large Website System and Java Middleware Practice" ci-dessus, il appartient à la catégorie des composants distribués et est bien sûr un contenu quelque peu approfondi. c'est aussi mes propres intérêts personnels. Bien entendu, si vous aspirez à être un excellent architecte de site internet à grande échelle, directeur technique d’une entreprise, etc., vous devez maîtriser ces connaissances.
Ce livre part de la théorie de base des systèmes distribués, parle de l'algorithme Paxos et le présente enfin à Zookeeper, étape par étape. Bien sûr, il ne me convient pas d'exprimer d'autres opinions pour le moment, car je n'ai pas encore compris l'algorithme Paxos dans le deuxième chapitre de ce livre (l'algorithme Paxos est en effet un peu difficile à comprendre et pas facile à comprendre) , et les chapitres suivants n'ont pas encore été lus.
Si l'entreprise où travaillent les internautes utilise Zookeeper et que vous êtes intéressé par Zookeeper et souhaitez étudier ses principes, ce livre sera le meilleur choix.
"Apprenez MySQL 5.6 à partir de zéro"
En tant que programmeur Java, je pense que nous ne devons pas penser que la base de données est une question de DBA. La base de données est également une connaissance qu'un programmeur Java doit maîtriser. Une riche expérience en optimisation des performances des bases de données est une compétence essentielle pour les meilleurs. programmeurs.
Les bases de données grand public actuelles incluent Oracle et MySQL. Bien sûr, MySQL est recommandé à tout le monde. Je pense qu'il y a deux raisons principales :
1. est plus pratique à installer et à désinstaller. SQL est en fait le même. Si vous souhaitez apprendre les bases de données, apprenez simplement MySQL. Si votre entreprise utilise Oracle, utilisez simplement la méthode d'apprentissage comparatif et faites attention à Oracle. et La différence entre MySQL est
2. Avec la progression du mouvement d'Alibaba vers IOE en 2009, de nombreuses sociétés Internet nationales choisiront MySQL comme base de données Parce que MySQL est gratuit, il permet d'économiser de l'argent et n'a pas besoin de compter sur MySQL. Oracle si quelque chose ne va pas
Ma recommandation pour apprendre MySQL est "MySQL 5.6 from Scratch" que j'ai lu moi-même. Je pense que ce livre est très bon. Les points de connaissances du livre ne sont pas très détaillés et complets. les normes juste ces deux points ?
"Analyse approfondie du code source Spring"
Le framework Spring est si bien fait et ses fonctions sont si puissantes que de nombreux développeurs ne connaissent que Spring et ne savent pas ce qu'est une usine, ce qu'est un singleton et ce qu'est un agent (ma véritable expérience dans interviewer les autres). Ce framework puissant doit avoir une implémentation très complexe. Cela entraînera des problèmes une fois que votre programme utilisera Spring. Il peut s'agir d'une erreur, d'une exception, il se peut que le résultat de l'exécution du programme ne soit pas celui que vous attendiez, etc. Parfois, cela vous rend confus. Il ne semble pas y avoir de meilleure solution que de vérifier les informations en ligne ou de demander aux autres.
Etudier le code source de Spring est un bon moyen d'apprendre. Je pense personnellement que cela présente de nombreux avantages :
1 Après avoir compris la mise en œuvre interne du framework, vous pouvez prendre l'initiative de résoudre les problèmes. , et Il n'est pas nécessaire de compter sur les autres
2. L'implémentation interne du framework Spring utilise de nombreux modèles de conception et de bonnes idées de conception de code. Cela améliorera considérablement votre écriture de code et votre compréhension des modèles de conception <.>
3. L'étude du framework Spring améliorera considérablement votre capacité à lire le code. Je pense que tant que vous pourrez étudier clairement comment Spring est implémenté en interne, le code source de tout autre framework ne sera pas difficile pour vous. 🎜>Dans l'ensemble, je pense que la capacité de lire du code est l'une des plus grandes différences entre un programmeur ordinaire et un bon programmeur. Le premier n'utilisera que ce que les autres ont écrit, tandis que le second ne pourra pas seulement bien l'utiliser. , mais aussi le savoir clairement. Savoir comment la couche inférieure des choses écrites par d'autres est mise en œuvre peut facilement résoudre les problèmes lorsqu'ils surviennent.
Code source de Spring, je recommande personnellement le livre "Analyse approfondie du code source de Spring". Si vous voulez vraiment l'étudier en profondeur et écrire clairement le code source de Spring, j'ai peur qu'il y en ait trois ou quatre. Les livres ne suffisent pas.L'auteur a fait de son mieux en près de 400 pages.Il n'est pas facile d'expliquer comment le code source de Spring est implémenté, mais je pense que l'explication de l'auteur combinée aux propres recherches des lecteurs donnera sûrement des résultats. leur une compréhension plus approfondie de la mise en œuvre de Spring.
PostscriptCi-dessus sont quelques bons livres qui valent la peine d'être lus et que je recommande aux développeurs Java. Mais il n'y a pas de bases Java ni de tutoriels Java dans ces livres. Ce n'est pas que je ne le recommande pas, mais cela fait plusieurs années que j'ai moi-même appris la technologie Java de base. J'ai oublié tout ce que j'ai lu pendant mes études, donc je peux. Je recommande de manière irresponsable à tout le monde certains livres que je n'ai pas lus moi-même.
Attention aux étudiants qui apprennent Java ! ! !
Si vous rencontrez des problèmes pendant le processus d'apprentissage ou si vous souhaitez obtenir des ressources d'apprentissage, vous êtes invités à rejoindre le groupe d'échange d'apprentissage Java : 299541275 Apprenons Java ensemble !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!