21 technologies de base Java, vous devez maîtriser!

  Le but de la rédaction de cet article est de résumer une partie de mon expérience et de mon expérience de l'utilisation de Java pendant tant d'années, et j'espère vous apporter une certaine expérience afin que tout le monde puisse mieux apprendre et utiliser Java.
  Le contenu principal de cette introduction est lié à J2SE. De plus, je présenterai à l'avenir du contenu lié à J2EE concernant divers frameworks en Java.
  Après tant d'années de développement Java, combinées à certaines des interviews habituelles avec les développeurs Java, je pense que l'essentiel pour J2SE est de maîtriser le contenu suivant.
  1.
  Concernant la JVM Pour ceux qui sont novices en Java, les connaissances liées à la JVM n'ont pas nécessairement besoin d'être très bien comprises, il suffit d'avoir une compréhension simple des concepts qui s'y trouvent.
  Mais pour un développeur senior avec plus de 3 ans d'expérience Java, il serait presque inacceptable de ne pas avoir de JVM.
  La JVM est la base du fonctionnement de Java. Il est difficile de croire que quiconque ne la connaît pas peut bien manger le langage Java.
  Lorsque j'ai interviewé des développeurs avec plus de 3 ans d'expérience Java, la JVM était presque une question incontournable.
  Bien sûr, la JVM n'est pas la seule question d'entrevue qui détermine la capacité technique, mais elle peut prouver le niveau de capacité de développement java.
  Dans la grande catégorie de la JVM, je pense que les connaissances à maîtriser sont:
  ● le modèle et la structure de la mémoire JVM
  ● le principe GC, l'optimisation des performances
  ● l'optimisation: Thread Dump, l'analyse de la structure de la mémoire
  ● la structure de bytecode binaire de classe, le système de chargeur de classe, Processus de chargement de classe, processus de création d'instance
  ● Processus d' exécution de méthode
  ● Nouvelles fonctionnalités fournies par chaque mise à jour de version majeure de Java (nécessite une compréhension simple) 2.
  Opération
  Java Cela peut sembler très simple, qui n'exécutera pas le programme java?
  Cependant, dans de nombreux cas, nous exécutons simplement le programme java via l'IDE, comment l'IDE sous-jacent exécute-t-il le programme java? Beaucoup de gens ne comprennent pas.
  Ce point de connaissance est le plus basique que les développeurs Java doivent maîtriser. Le premier est certainement de vous apprendre à exécuter des programmes Java sur la ligne de commande, mais beaucoup de gens oublient une fois Java et utilisent l'IDE, oubliez cela. Trop.
  Pourquoi insistez-vous pour le savoir? Une fois que vous connaissez la façon la plus pure de démarrer Java, vous pouvez analyser le nombre de répertoires qui ont été démarrés à ce moment-là, comment les nommer, comment définir les paramètres, s'il en manque, etc.
  Cela vous est utile pour résoudre ces problèmes étranges et éventuellement liés à l'environnement dans le développement réel.
  Les connaissances à maîtriser ici sont:
  ● javac compile les fichiers java en fichiers de classe
  ● utilisation de la commande java, comment démarrer la classe java avec le package en ligne de commande
  ● divers chemins impliqués dans le programme java (classpath, java.library.path, Java exécutant le répertoire de base, etc.)
  3. Type de données
  Il n'y a pas grand-chose à dire à ce sujet, ce n'est rien de plus que la compréhension des types de base et des types d'objets en Java.
  Vous pouvez en savoir plus sur la façon dont JDK convertit automatiquement, y compris la boxe et le déballage, etc., et faites également attention à éviter de juger de types égaux après la boxe.
  Principaux points de connaissance:
  ● Types de base: int, long, float, double, booléen. . .
  ● Type d'objet correspondant: conversion d'Integer et d'autres types en types de base, boxing et unboxing
  ● Type d'objet: equals, hashcode
  ● Caractéristiques du type String
  4. Objet et instance
  À cet égard, les développeurs doivent comprendre le concept de classe et d'instance et la différence entre eux, qui est le fondement des fonctionnalités orientées objet Java.
  Les principaux points de connaissance sont:
  Le concept de classe et d'instance Le
  processus de création d'instance:
  ● Pas d'héritage: allouer de l'espace mémoire, initialiser des variables, appeler le constructeur
  ● Héritage: gérer des actions statiques, allouer de l'espace mémoire, les variables sont définies comme des valeurs initiales, à partir de la classe de base - & gt; sous - classes, processus d'initialisation définis à, le constructeur est exécuté
  point note:
  ● propriétés de statique et analogues à partir de la classe de base - & gt; sous - classe initialize
  constructeur par défaut de caractéristiques sans arguments associés
  5. le contrôle d'accès
  qui est java L'un des fondements des fonctionnalités d'encapsulation qui doivent être maîtrisées est: la modification privée par défaut protégée publique de la classe, de la méthode et du champ.
  6. Contrôle de flux
  Les fondements du contrôle de flux Java Bien que certaines syntaxes ne soient pas nécessairement très courantes, elles doivent toutes être comprises et utilisées aux endroits appropriés.
  Besoin de maîtriser: if, switch, loop, for, while et autre syntaxe de contrôle de flux.
  7. Le concept de programmation orientée objet
  C'est un concept de base de java, et tout développeur java doit le maîtriser.
  De nombreuses fonctionnalités ou points de connaissance en Java sont liés au concept de programmation orientée objet java.
  À ma connaissance, un bon développeur doit non seulement comprendre ces fonctionnalités (points de connaissance) eux-mêmes.
  Vous devez également savoir comment ces objets se reflètent dans le concept de programmation orientée objet en Java, qui est plus propice aux développeurs pour maîtriser le langage de développement Java et d'autres langages de programmation orientés objet.
  Voici une brève liste. Les principaux points de connaissance sont les suivants:
  ● Trois principales fonctionnalités orientées objet: encapsulation, héritage et polymorphisme,
  ● Chaque concept de définition, quelles fonctionnalités sont reflétées, et leurs scénarios d'utilisation respectifs
  ● Multi-dispatch statique, Le concept de répartition unique dynamique
  ● Le concept et l'utilisation de la surcharge
  ● Héritage: implémentations multiples d'interfaces, héritage unique de classes de base
  ● Abstraction, classes abstraites, interfaces
  ● Polymorphisme: concept et utilisation de la couverture de méthode
  ● Rappel d'interface
  8.
  propriétés statiques statiques en java Il est également souvent utilisé dans le développement quotidien. Vous devez comprendre l'utilisation liée au mot clé statique et l'utiliser avec d'autres mots clés, par exemple s'il peut être utilisé conjointement avec des mots clés abstraits, finaux et autres.
  Les principaux besoins à maîtriser sont:
  ● La définition et l'utilisation des propriétés statiques, et comment initialiser lorsque la classe est chargée
  ● La définition et l'utilisation des méthodes statiques ● La définition et l'utilisation des
  classes statiques
  ● La définition et le temps d'initialisation des blocs de code statiques
  9. Les connaissances de base
  ici sont principalement Énumérez quelques points de connaissance dispersés sur java sans classification systématique.
  Il est également utilisé dans le développement quotidien. Il y a en fait beaucoup de contenu dans cet article, pour l'instant, je viens de les résumer ici:
  y compris:
  ● égal à
  ● hashcode
  ● tring / stringbuffer
  ● final
  ● enfin
  ● finaliser
  10. Cadre de collecte
  Il s'agit d'une partie qui doit être maîtrisée. Pour le développement Java, on peut dire qu'il n'est pas nécessaire d'utiliser le cadre de collecte. C'est très important. Vous devez être clair sur les questions et réponses d'entrevue de collecte Java organisées ici.
  Mais la connaissance ici n'est pas difficile, mais il est préférable de comprendre l'implémentation interne de la collection, car elle vous aide à choisir un cadre approprié pour résoudre le problème dans divers scénarios, comme une collection d'éléments 1W, souvent Il est facile de faire le bon choix en effectuant l'opération de jugement des contenants et en connaissant les caractéristiques ou la mise en œuvre interne de la collection.
  Le contenu suivant est inclus ici (lié à la concurrence n'est pas inclus):
  Système de cadre de collecte : Collection de base,
  Contenu d'implémentation de collection spécifique à la carte , Liste, Définir, Implémentation spécifique à la carte, structure interne, méthodes spéciales, scénarios applicables et autres
  liés à la collection Utilisation des collections d'outils, etc.
  11. Les exceptions du cadre d'
  exceptions peuvent ne pas être si valorisées dans le développement de Java. Les meilleures pratiques de gestion des exceptions sont expliquées en détail.
  Généralement, si vous rencontrez une exception, jetez-la directement ou interceptez-la pendant un certain temps, et cela n'aura pas un grand impact sur le fonctionnement global du programme. Cependant, dans la conception et le développement au niveau de l'entreprise, la conception et la gestion des anomalies sont souvent liées à la robustesse globale du système.
  Pour un bon système, les exceptions doivent être gérées de manière uniforme par les développeurs pour éviter une grande partie de la logique de gestion des exceptions. Pour le système, les exceptions doivent être contrôlables et faciles à utiliser et à maintenir. Après certaines exceptions, Il devrait y avoir une méthode d'adaptation, savoir comment gérer l'exploitation et la maintenance.Par conséquent, bien que le cadre des exceptions soit très simple, mais pour tout le développement d'applications au niveau de l'entreprise, la gestion des exceptions est très importante, pour gérer les exceptions, vous devez comprendre le système d'exceptions en Java.
  Il n'y a pas beaucoup de points de connaissances à maîtriser dans cette partie, principalement:
  système d'exception:
  Throwable
  Exception
  RuntimeException

  Différence entre l'   Erreur RuntimeException et l'Exception générale, les méthodes de traitement spécifiques, etc.
  12.
  Java IO IO n'est pas seulement aussi simple que la lecture et l'écriture de fichiers en Java, mais comprend également la lecture et l'écriture du réseau de socket et toutes les autres opérations d'entrée et de sortie. Par exemple, la lecture du contenu Post dans une requête HTTP standard est également un processus de sortie, etc ...
  Pour IO, Java fournit non seulement des API de base liées aux entrées et sorties, mais fournit également des opérations simplifiées telles que les API Reader et Writer. Certains développements (projets impliquant de nombreuses opérations d'E / S) sont également très importants, et sont également impliqués dans le développement quotidien général (journaux, lecture et écriture de fichiers temporaires, etc.).
  Les principaux points de connaissance à ce sujet sont les suivants: Le
  système d'E / S de base comprend InputStream, OutputStream, Reader / Writer, la lecture de fichiers, la lecture de divers flux, etc., le concept de NIO, des méthodes d'utilisation spécifiques et des scénarios d'utilisation.
  13. Le
  multi-threading simultané multi-thread est généralement considéré comme une partie difficile en Java.
  L'utilisation du multi-thread peut améliorer efficacement le taux d'utilisation du CPU et améliorer l'efficacité globale du système, en particulier dans le cas d'un grand nombre d'opérations d'E / S bloquées; les questions et réponses d'entrevue multi-thread Java que vous devez trier ici doivent être claires.
  Cependant, c'est aussi une arme à double tranchant.Si elle n'est pas bien utilisée, le système non seulement s'améliorera peu ou pas, mais posera également des problèmes tels que le débogage entre plusieurs threads.
  Il existe de nombreux contenus dans le multi-threading, juste pour expliquer brièvement les points de connaissance qui doivent être maîtrisés dans l'utilisation initiale du multi-threading en Java. À l'avenir, j'aurai l'occasion d'introduire en détail les scénarios d'utilisation de certaines fonctionnalités avancées. Répondez à "Multithreading" dans le compte public de la pile de technologie Java pour obtenir une série de tutoriels multithreading.
  ● Implémentation et démarrage multithread
  ● Différence appelable et exécutable
  ● syncrhoized, ReentrantLock leurs propres caractéristiques et comparaison
  ● pool de threads
  pour obtenir les résultats d'une manière asynchrone ● future
  ● package simultané
  ● verrouillage
  14. Le réseau
  Java est également fourni qui peut manipuler directement le protocole TCP, UDP API de protocole.
  Dans les cas où les performances du réseau doivent être soulignées, TCP / UDP peut être utilisé pour la communication directement.
  Vous pouvez voir l'utilisation de ces API associées dans le code source de Tomcat et ainsi de suite.
  Cependant, il est généralement rare d'utiliser TCP directement, et des cadres tels que MINA et Netty seront utilisés pour le traitement. Comme il n'y a pas beaucoup de développement impliqué dans cet aspect, il ne sera pas répertorié en détail.
  15. Traitement de l'heure et de la date
  Pour presque toutes les applications, le traitement de l'heure et de la date ne peut être contourné, mais l'utilisation des API liées au temps avant JDK8 n'est pas conviviale.
  À cette époque, vous pouvez choisir Joda et d'autres délais. Après la sortie de JDK8, la nouvelle API temporelle intègre essentiellement les avantages des autres frameworks et peut être utilisée directement.
  Pour les développeurs Java, il est nécessaire d'utiliser l'API pour gérer l'heure et la date.
  Les points de connaissances spécifiques ne sont plus répertoriés, et un article spécial sera écrit à l'avenir pour résumer l'utilisation de l'API heure et date dans JDK8.
  16. Analyse XML / analyse JSON
  En fait, ces deux éléments de contenu ne sont pas le contenu de J2SE, mais dans le développement quotidien, l'interaction avec d'autres programmes et l'interaction avec les fichiers de configuration sont de plus en plus inséparables de l'analyse de ces deux formats.
  Cependant, pour un développeur, être capable de comprendre les principes et les méthodes d'analyse syntaxique XML / JSON spécifique vous aidera à mieux choisir la méthode appropriée dans chaque scénario spécifique pour rendre votre programme plus efficace et plus robuste. .
  XML: besoin de comprendre les principes de base de l'analyse DOM et de l'analyse SAX et leurs scénarios respectifs applicables
  JSON: besoin de comprendre l'utilisation de certains frameworks JSON courants, tels que Jackson, FastJson, Gson, etc.
  17.
  Maven n'est pas le contenu de Java dans Maven, mais maven est révolutionnaire, ce qui apporte une grande commodité au développement Java. Vous devez être familier avec ces 30 commandes Maven.
  Depuis l'introduction et la gestion des dépendances, la mise à jour et la sortie du processus de développement, et même la mise à jour de la version, l'utilisation de maven peut considérablement simplifier la complexité du processus de développement, économisant ainsi beaucoup de temps.
  On peut dire que maven est devenu la norme pour les développeurs java. Je prends donc maven comme un point de connaissance nécessaire pour les développeurs Java.
  Répondez à "Maven" dans le compte public de la pile de technologie Java pour obtenir la série de tutoriels Maven, et je mettrai un peu de mon expérience et des conseils pour utiliser maven à l'avenir. Je n'entrerai pas dans les détails ici.
  18. Générique
  C'est un nouveau concept que JDK5 a commencé à introduire, en fait c'est un sucre syntaxique.
  Lors de l'écriture de code Java, cela sera un peu pratique: les applications générales ou le développement commercial doivent simplement être simples à utiliser et les opérations telles que la définition des génériques ne sont pas nécessairement utilisées.
  Cependant, certains composants publics de base seront utilisés pour le développement. Vous pouvez regarder cette partie en détail quand vous en avez besoin. En général, vous pouvez simplement l'utiliser.
  19. Les annotations ont
  également été introduites après jdk5 et vous devez comprendre les méta-annotations.
  Spring est un excellent framework, avec XML comme fichier de configuration standard depuis le début.
  Cependant, après Spring3, en particulier après la montée en puissance de Spring-Boot, l'utilisation d'annotations pour simplifier le fichier de configuration xml est de plus en plus admirée. Pour les développeurs, cela peut économiser beaucoup de temps de configuration xml.
  Mais l'inconvénient est que les annotations sont dispersées dans différentes catégories. Contrairement à XML, vous pouvez avoir une compréhension et une gestion globales de toutes les configurations, donc il n'y a aucun moyen de dire que tout XML sera complètement remplacé.
  Pour les développeurs généraux, vous utiliserez des annotations. Certains développeurs publics peuvent avoir besoin de comprendre la définition et la mise en œuvre des annotations. Vous pouvez les consulter lorsque vous en avez besoin.
  20. RMI
  RemoteMethodInvocation, une interface d'appel à distance unique au langage Java, est relativement simple et pratique à utiliser, cliquez ici pour en savoir plus sur la différence entre RMI et RPC.
  Cependant, lorsque plusieurs langues sont nécessaires, d'autres méthodes telles que le service Web sont nécessaires pour la prendre en charge.
  D'une manière générale, les programmes n'ont pas besoin d'utiliser RMI, mais ils peuvent être utilisés dans des situations spécifiques J'utilise RMI dans un projet pour contrôler le démarrage et l'arrêt à distance du programme.
  21. L'
  interface native Java JNI , qui permet à Java d'appeler des méthodes d'interface native, est généralement utilisée pour les appels de code C / C ++.
  Il convient de noter que le chemin de chargement du fichier so / dll en java n'est pas compliqué à appeler l'interface elle-même, mais passe souvent plus de temps à savoir si la bibliothèque d'interface locale requise est chargée.
  Ce qui précède n'est qu'une brève introduction à certains de mes points de vue et introductions sur ces points de connaissances de base java et points techniques.
  Ces contenus sont dérivés d'un résumé de mon utilisation de java au fil des ans. Il y a encore des domaines où le contenu n'est pas parfait et sera ajouté dans les prochains articles.

Je suppose que tu aimes

Origine www.cnblogs.com/525jik/p/12702566.html
conseillé
Classement