Maison  >  Article  >  Java  >  Introduction détaillée au chemin vers l'avancement de Java

Introduction détaillée au chemin vers l'avancement de Java

零下一度
零下一度original
2017-07-23 14:59:001055parcourir

Comment apprendre à passer d'un programmeur Java junior à un architecte qualifié, ou quel type de système de connaissances techniques un architecte qualifié devrait avoir Ce n'est pas seulement un programmeur junior qui vient d'entrer sur le marché du travail. souvent demandé par les programmeurs chevronnés qui deviennent confus après avoir travaillé pendant trois à cinq ans. J'espère que cet article sera la réponse la plus complète et faisant autorité que vous ayez jamais vue.

1 : Bases de la programmation

Que ce soit C ou C++, que ce soit Java ou PHP, si vous souhaitez devenir un programmeur qualifié, les structures de données de base et fondements de l'algorithme Encore faut-il l'avoir. Les articles suivants trieront pour vous les structures de données couramment utilisées et les algorithmes classiques, de l’idée à la mise en œuvre.

1-1 Structures de données communes

Tableau, liste chaînée, tas, pile, file d'attente, table de hachage, arbre binaire, etc.

1-2 Idées d'algorithmes

Analyse et calcul de la complexité temporelle et spatiale de l'algorithme

Idées d'algorithmes : récursivité, récursivité, épuisement, gourmand, diviser pour régner, programmation dynamique, itération, branchement

1- 3 Algorithmes classiques

Tri classique : tri par insertion, tri à bulles, tri rapide (tri par division et échange), tri par sélection directe, tri par tas, tri par fusion

Recherche classique : recherche séquentielle, recherche binaire , Recherche d'arbre de tri binaire

1-4 Structures de données avancées

Nombres B+/B, arbres rouge-noir, graphiques, etc.

1-5 Algorithmes avancés

Recherche en profondeur d'abord du graphique, recherche en largeur du graphique en premier, tri topologique, algorithme de Dijkstra (chemin le plus court à source unique), codage de Huffman, division euclidienne, arbre couvrant minimum, etc.

2 : Bases du langage Java

Le langage Java, né il y a un peu plus de 20 ans, est largement utilisé dans les sites Web. Dans les appareils mobiles et les applications de bureau, il a été au sommet du classement des langages de programmation TOBIE pendant de nombreuses années consécutives, et récemment, il a dominé le championnat. Quelles sont les caractéristiques exceptionnelles et distinctives de Java doivent d’abord être claires.

2-1 Syntaxe de base

Format de syntaxe Java, constantes et variables, portée des variables, méthodes et surcharge de méthodes, opérateurs, contrôle de flux de programme, divers types de données de base et classe d'emballage

2-2 Important : Classe de collection

Collection et diverses relations d'implémentation et d'intégration de listes, d'ensembles, de files d'attente, de cartes, principes d'implémentation

Collections et tableaux

2-3 Autres JavaAPI

String et StringBuffer, classes System et Runtime, classes Date et DateFomat

package java.lang

package java.util (système de classes de collection, expressions régulières, zip , ainsi que l'heure, les nombres aléatoires, les propriétés, les ressources et la minuterie, etc.)

paquet java.math

paquet java.NET

paquet java .text (divers classes de formatage, etc.)

package java.security

2-4 Orienté objet, orienté interface

Les trois caractéristiques majeures des objets : encapsulation et héritage Et polymorphisme , avantages et inconvénients

Comment concevoir une classe, principes de conception d'une classe

ce mot-clé, mot-clé final, mot-clé statique

Le processus d'instanciation d'un objet

Réécriture et surcharge des méthodes ; le processus de passage des paramètres des méthodes et méthodes

Constructeur

Classes internes, classes abstraites, interfaces

Polymorphisme des objets (conversion entre sous-classes et classes parent, références aux classes carton parent), application de classes abstraites et d'interfaces dans le polymorphisme

2-5 Modèle de mémoire JVM, garbage collection

2-6 À propos des exceptions

Throwable/Error/Exception, Checked Exception vs.

Comment créer du multi-threading dans un programme, problèmes de sécurité des threads, communication entre les threads

Synchronisation des threads

Analyse du problème de blocage

Pool de threads

2-8 IO

paquet java.io, comprenez les idées de conception du système IO basées sur le modèle de pipeline et les classes IO communes Caractéristiques et situations d'utilisation.

Fichiers et classes associées, flux d'octets InputStream et OutputStream, flux de caractères Reader et Writer, ainsi que les flux de tampon et les flux de tuyaux correspondants, les flux de conversion d'octets et de caractères, les flux d'empaquetage et les classes d'empaquetage couramment utilisées

Analyser les performances des IO

2-9XML

Être familier avec les avantages et les inconvénients de SAX, DOM et JDOM et être capable d'utiliser l'un d'entre eux pour effectuer l'analyse XML et le traitement de contenu de ces types ; d'analyse Principes des méthodes

2-10 Quelques fonctionnalités avancées

Réflexion, proxys, génériques, énumérations, expressions régulières Java

2-11 Programmation réseau

Principes et scénarios applicables des protocoles de communication réseau, de la programmation Socket et des principes de fonctionnement des serveurs WEB

2-11 Chaque version de JDK1.5, JDK1.6, JDK1.7 et JDK1.8 est meilleure que la version précédente Quelles nouvelles fonctionnalités ont été ajoutées et quelles améliorations ont été apportées

3 : Lié à la base de données

Comme mentionné précédemment, la structure des données c'est simplement comme s'il s'agissait d'un classeur électronique et d'un entrepôt qui organise, stocke et gère les données selon une certaine structure de données.

3-1 Base théorique

Principes et paradigmes de conception de bases de données

Transactions (ACID, principe de fonctionnement, niveau d'isolement des transactions, verrous, mécanisme de propagation des transactions)

3-2 Analyse des avantages, inconvénients et scénarios d'utilisation de diverses bases de données

MySQL/SQLServer/Oracle et divers NoSQL (Redis, MongoDB, Memcached, Hbase, CouchDB, etc.)

3 - 2 instructions SQL

Création de base de données, attribution d'autorisations, création de table, ajout, suppression, modification, requête, connexion, sous-requête

Déclencheurs, procédures stockées, contrôle des transactions

3 -3 Optimisation

Principe et application de l'index, optimisation des requêtes de grandes tables, optimisation des requêtes de connexion multi-tables, optimisation des sous-requêtes, etc.

3-4 sous-base de données, sous-table, sauvegarde, migration

Importation, exportation, sous-base de données, sous-table, veille froide et veille chaude, sauvegarde maître-esclave, veille chaude double machine, expansion verticale, expansion horizontale

3-5 JDBC

Connexion JDBC, Statement, PreparedStatement, CallableStatement , ResultSet et autres différents types d'utilisation

Pool de connexions (utilisation de la configuration, principe d'implémentation)

ORM, DAO

Quatre : JavaWeb Core Technology (y compris certains front-end)

HTML5/Css/js natif/jQuery

Ajax (cross-domaine, etc.)

JSP/JavaBean/Servlet/EL/JSTL /TabLib

JSF

JSON

EJB

Sérialisation et désérialisation

Moteur de règles

Moteur de recherche

Moteur de modèles

Cache

Authentification

Tests

Cluster

Persistance

Génération de technologie de page statique

Hautes performances

Sécurité

Transaction JTA

Autres éléments dont vous avez besoin savoir, tels que : gestion JMX, sécurité JCCA/JAAS, Intégration JCA, communication JNDI/JMS/JavaMain/JAF, technologie SSI

5. Frameworks et outils grand public

Struts1/Struts2

spring (IoC, AOP, etc.), SpringMVC

Persistance : hibernate/MyBatis

Log : Log4j

Test unitaire : JUnit

File d'attente de messages : ActiveMQ, RabbitMQ, etc.

Équilibrage de charge : Nginx/HaProxy

Serveur Web : Tomcat, JBoss, Jetty, Resin , WebLogic, WebSphere, etc.

Communication : WebService (cxf soap, restful protocol)

Cache : redis, Memcached

Workflow : Activité, JBPM

Moteur de recherche : lucene, solr basé sur l'encapsulation lucene

Moteurs de templates : Velocity, FreeMaker

Big data : Hadoop (HDFS et MapReduce)

Outils de build : Ant/Maven

6, Conception et architecture du système JavaWeb

Modèles de conception Java

Modélisation JAVA et UML

Architecture orientée services : SOA/SCA/ESB/OSGI/EAI, Micro Service

Architecture orientée ressources : ROA/REST

Architecture orientée Cloud : COA/Saas/Cloud Computing

Équilibrage de charge de grands sites Web, réglage du système, etc.

7. Plus

Capacité de dépannage :

Il devrait être possible de localiser rapidement la cause du problème en fonction des informations d'exception et de l'emplacement approximatif

Capacités d'optimisation

. Spécifications du code et gestion du code :

possède son propre système de spécification de code, et le code peut Bonne lisibilité

Connaissances étendues :

Comprendre divers produits et fonctionnalités réseau, comprendre divers middleware, être capable de savoir où se trouvent les pièges et se familiariser avec diverses technologies Les avantages et inconvénients de la solution, savoir intégrer diverses ressources et obtenir des résultats optimaux.... Comprendre diverses technologies et des scénarios d'application, et avoir suffisamment d'expérience professionnelle pour résoudre divers problèmes étranges rencontrés en intégration

Direction technique/directeur technique :

Gestion de produit, gestion de projet, team building, amélioration de l'équipe

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Syntaxe de base JavaArticle suivant:Syntaxe de base Java