


De quelles compétences professionnelles les programmeurs Java ont-ils besoin ?
De quelles compétences professionnelles avez-vous besoin pour devenir un programmeur ou un ingénieur Java qualifié ? Que doivent préparer les intervieweurs avant l'entretien ? Le contenu affiché dans cet article peut être utilisé comme contenu dans votre CV ou comme élément de discussion avec l'intervieweur pendant l'entretien. Vous pouvez écrire ce contenu dans votre CV. Bien sûr, ce qui est plus important est que vous parliez à l'intervieweur pendant l'entretien. l’entretien. L’intervieweur démontre ces compétences professionnelles. Je pense que cet article sera utile aux étudiants de première année qui recherchent des postes de programmeur Java (ingénieur Java), ainsi qu'aux juniors qui souhaitent devenir développeurs Java intermédiaires et seniors.
Compétences professionnelles
Maîtrise de l'utilisation du langage Java pour la programmation orientée objet, bonnes habitudes de programmation et familiarité avec les API Java couramment utilisées, notamment Framework de collection, multi-threading (programmation simultanée), E/S (NIO), Socket, JDBC, XML, réflexion, etc.
Familier avec le développement Web Java basé sur JSP et Servlet, avoir une compréhension approfondie des principes de fonctionnement et des cycles de vie de Servlet et JSP, maîtriser l'utilisation de JSTL et EL pour écrire des dynamiques sans script pages et avoir la possibilité d'utiliser l'expérience dans le développement de projets Web Java avec des composants Web tels que des écouteurs et des filtres, ainsi que le modèle d'architecture MVC.
Avoir une compréhension approfondie du conteneur IoC et des principes AOP de Spring, utiliser habilement le framework Spring pour gérer divers composants Web et leurs dépendances, et utiliser habilement Spring pour les transactions, la journalisation et la sécurité. La direction, etc., a de l'expérience dans l'utilisation de Spring MVC comme technologie de couche de présentation et dans l'utilisation du support de persistance fourni par Spring pour le développement de projets Web, et est familiarisée avec l'intégration d'autres frameworks par Spring.
Maîtrise de l'utilisation des frameworks ORM tels que Hibernate et MyBatis, familier avec les API de base d'Hibernate et MyBatis, et familier avec le mappage d'association, le mappage d'héritage, le mappage de composants, le mécanisme de mise en cache et les transactions d'Hibernate. gestion et réglage des performances. Excellente compréhension.
Maîtrise de l'utilisation de HTML, CSS et JavaScript pour le développement Web front-end, familier avec jQuery et Bootstrap, ayant une compréhension approfondie de l'application de la technologie Ajax dans les projets Web et utilisant le framework MVC frontal (AngularJS) et le moteur de modèles JavaScript (HandleBars) pour l'expérience de développement de projets.
Familier avec les produits de bases de données relationnelles couramment utilisés (MySQL, Oracle) et maîtrise de l'utilisation de SQL et PL/SQL pour la programmation de bases de données.
Familière avec les principes de conception orientée objet, avec une compréhension approfondie des modèles de conception du GoF et des modèles d'architecture d'applications d'entreprise, ainsi qu'une expérience pertinente en développement pratique et une utilisation compétente d'UML pour l'orientation objet. analyse et conception, avec une expérience en TDD (Test Driven Development) et DDD (Domain Driven Design).
Familier avec l'utilisation de serveurs Web et de serveurs d'applications tels qu'Apache, NginX, Tomcat, WildFly, Weblogic, etc., et familier avec la configuration de l'intégration, du clustering et du chargement de plusieurs serveurs équilibrage.
Maîtrise de l'outil de prototypage de produits Axure, maîtrise de l'utilisation des outils de modélisation de conception PowerDesigner et Enterprise Architect, maîtrise de l'environnement de développement Java Eclipse et IntelliJ, maîtrise de l'environnement de développement front-end WebStorm , Maîtrise de l'utilisation des outils de contrôle de version de logiciels SVN et Git, et maîtrise de l'utilisation des outils de construction et de gestion de projets Maven et Gradle.
Remarque : Toutes les choses énumérées ci-dessus ne doivent pas nécessairement vous être familières. Vous pouvez le faire en fonction des exigences de recrutement spécifiques du. entreprise. Personnellement, je pense que les 6 premiers éléments devraient constituer les exigences minimales et les compétences professionnelles qu'un développeur Java doit posséder.
Expérience du projet
Introduction au projet
Ce système est un système développé par X confié par Y pour Z. Le système comprend A et B , C, D et autres modules. Le système utilise le framework open source Java E au niveau de l'entreprise et la technologie frontale F. La couche de présentation utilise l'architecture G, utilise H comme vue, I comme contrôleur et implémente les requêtes de style REST ; la couche de logique métier utilise le modèle J et implémente des fonctions telles que les transactions, les journaux et la sécurité via K, et implémente le cache. services via L ; La couche de persistance utilise M pour encapsuler les opérations CRUD et la couche inférieure utilise N pour implémenter l'accès aux données. L'ensemble du projet a adopté le modèle de développement P.
Remarque : Dans la description ci-dessus, E fait généralement référence à Spring (un choix unique pour le développement d'entreprise Java) F est très probablement la bibliothèque jQuery et ses plug-ins ou le ; Framework Bootstrap. Bien sûr, si vous souhaitez créer une application monopage (SPA), la meilleure solution est un framework MVC frontal (tel qu'AngularJS) et un moteur de modèle JavaScript (tel que HandleBars) ; (Model-View-Control), et le cadre d'implémentation le plus probable est Spring MVC, en plus de Struts 2, JSF et de l'implémentation MyFaces fournie par Apache pour JSF, vous pouvez utiliser JSP comme V dans MVC, vous pouvez également utiliser un modèle (tels que Freemarker et Velocity) pour générer des vues, ou vous pouvez utiliser divers documents ou rapports (tels qu'Excel et PDF, etc.), et les servlets et les contrôleurs personnalisés sont en C dans MVC. Bien sûr, Spring MVC fournit DispatcherServlet en tant que. contrôleur frontal ; J est généralement un script de transaction et K devrait être une technologie AOP (programmation orientée aspect), L est actuellement largement utilisé avec Memcached et M a de nombreuses options, les plus probables sont Hibernate et MyBatis Both. Les technologies peuvent également être utilisées en même temps, mais les ajouts, les suppressions et les modifications sont généralement gérés par Hibernate et les requêtes complexes sont complétées par MyBatis. De plus, TopLink et jOOQ sont également d'excellentes solutions de couche de persistance que l'accès aux données sous-jacentes utilise traditionnellement. bases de données relationnelles, qui peuvent être MySQL, Oracle, SQLServer, DB2, etc., avec l'avènement du big data Avec l'avènement de l'ère, NoSQL (comme MongoDB, MemBase, BigTable, etc.) et d'autres solutions d'accès au big data ( tels que GFS, HDFS, etc.) peuvent également être utilisés ; le modèle de développement P du projet peut être un modèle en cascade, un modèle de prototype rapide, un modèle incrémental, un modèle Spiral, un modèle fontaine, un modèle RAD, etc.
Processus de développement du projet
Analyse de faisabilité>>>
Analyse des exigences>>> Spécification des exigences
- OOAD (diagramme de cas d'utilisation, diagramme de séquence, diagramme d'activité)
- Prototype d'interface : aide à comprendre les exigences et à dériver des scripts de transaction lors de la conception de la couche métier
- Extraire les entités métiers (objets de domaine) : diagrammes de classes, diagrammes E-R (étape de conception conceptuelle)
- Architecture hiérarchique : Déterminer le plan de mise en œuvre technique pour chaque couche (propre au framework utilisé, au serveur de base de données, au serveur d'applications, etc.). Conception de la couche métier : mode script de transaction (transaction : un utilisateur envoie une requête est une transaction ; script : une méthode ou une fonction ; script de transaction : encapsule une requête en tant que méthode ou fonction ; mode script de transaction : une transaction démarre avec le script ouverture, se terminant par la fermeture du script). Il existe trois types d'objets impliqués dans la couche métier : les classes de scripts de transaction (encapsulant les processus métier), les objets d'accès aux données (DAO, encapsulant les opérations de persistance) et les objets de transfert de données (DTO, encapsulant les objets de champ de perte de sang/anémie). entre l'objet d'accès aux données de combinaison de classes de script de transaction (agrégation), qui reposent tous deux sur l'objet de transfert de données
- l'ingénierie directe (diagramme de classes UML pour générer du code Java) et l'ingénierie inverse Ingénierie ( Le code Java génère des diagrammes de classes UML)
- Conception physique de bases de données (conversion de diagrammes ER en diagrammes de relations inter-tables, construction de bases de données et de tables, utilisation d'outils pour insérer des données de test)
- Unité testing : Vérifier et vérifier la plus petite unité testable dans le logiciel. En Java, il s'agit de tester les méthodes de la classe, qui peuvent être implémentées à l'aide de l'outil JUnit.
- Tests d'intégration : les tests d'intégration sont également appelés tests d'assemblage ou tests conjoints. Sur la base de tests unitaires, tous les modules sont assemblés en sous-systèmes pour être testés conformément aux exigences de conception.
- Tests du système : combiner les logiciels, le matériel, les périphériques, le réseau et d'autres éléments confirmés pour effectuer divers tests d'assemblage et tests de confirmation du système d'information. Les tests du système sont destinés à l'ensemble du but de. tester le système de produits consiste à vérifier si le système répond à la définition des spécifications de la demande et à découvrir les incohérences ou contradictions avec les spécifications de la demande, afin de proposer une solution plus complète.
- Tests d'acceptation : une fois que le produit logiciel a terminé les tests unitaires, les tests d'intégration et les tests système, les activités de tests logiciels sont menées avant la sortie du produit. Il s’agit de la dernière étape des tests techniques, également appelés tests de livraison. Le but des tests d'acceptation est de garantir que le logiciel est prêt et peut être utilisé par les utilisateurs finaux pour exécuter les fonctions et tâches prévues du logiciel.
- Contrôle de version : CVS/SVN/Git
- Build automatisé : Ant/Maven/Ivy/Gradle
- Intégration continue : Hudson/Jenkins
- Serveurs d'équilibrage de charge : F5, A10
- Serveur d'applications :
-
Serveur HTTP : Apache, NginX (HTTP, proxy inverse, serveur proxy de messagerie)
-
Conteneur de servlets : Tomcat, Resin
Conteneur EJB : WildFly (JBoss Application Server), GlassFish, Weblogic, Websphere
Serveur de base de données : MySQL, Oracle
Application d'outil tiers (plug-in)
Outils de graphiques : plug-ins de graphiques basés sur jQuery (tels que jQchart, Flot , Charted, etc.), Chart.js, Highcharts, etc.
Outils de reporting : Pentaho Reporting, iReport, DynamicReports, etc.
Traitement des documents : POI, iText, etc.
Moteurs de workflow : jBPM, OpenWFE, Snaker, SWAMP, etc.
Planification des tâches : Quartz, JobServer, Oddjob, etc.
Services de mise en cache : EhCache, memcached, SwarmCache, etc.
File d'attente de messages : Open-MQ, ZeroMQ, etc.
Cadre de sécurité : Shiro, PicketBox, etc.
Moteurs de recherche : IndexTank, Lucene, ElasticSearch, etc.
Framework Ajax : jQuery, ExtJS, DWR, etc.
Plug-ins d'interface utilisateur : EasyUI, MiniUI, etc.
Zone de texte enrichi : UEditor, CKEditor, etc.
Questions d'entretien
Pour quelle entreprise le projet a-t-il été développé ? Quel est l'investissement dans le projet ?
Combien de personnes ont participé au développement du projet ? Quelle est la proportion de testeurs, de développeurs et de chefs de projet dans l’ensemble de l’équipe ?
Depuis combien de temps le projet est-il développé ? Quel est le volume total de code du projet ? Combien de code as-tu ?
Quel modèle de développement ou processus de développement le projet adopte-t-il ? Quelle est la structure du projet ? Quelle est la sélection technologique pour le projet ?
Quelles responsabilités aviez-vous dans le projet ? Avez-vous des réunions fréquentes ou faites-vous des heures supplémentaires ? Quels sont les gains ou les leçons apprises après la réalisation du projet ?
Quelle a été la partie la plus difficile du projet ? Comment résoudre les différents conflits rencontrés lors du développement d’une équipe ?
Remarque : Pour ceux qui n'ont pas d'expérience réelle en matière de projet, vous pouvez rechercher et recruter des programmeurs Java sur des sites Web tels que 51job, Zhaopin.com et Lagou. com Company, trouvez leur site officiel pour en savoir plus sur les projets qu'ils réalisent, vérifiez l'introduction détaillée du projet, puis essayez de remplir certaines fonctions. Il est préférable de demander à un expert de voir si votre conception et votre code sont appropriés. Cela équivaut à accumuler une certaine expérience en matière de projet.
Questions d'entretien
Les questions d'entretien Java courantes ont été résumées dans "Collection de questions d'entretien Java", "Collection complète de questions d'entretien Java" et "Questions de programmation d'entretien Collection" 》 et d'autres articles seront publiés sur mon blog les uns après les autres. Je continuerai à compiler et à publier des questions d'entretien avec de grandes entreprises.
Autres
Erreurs courantes
Pratique uniquement sur ordinateur
Ne pas pratiquer les questions d'entretien comportemental
Ne pas suivre de formation aux entretiens simulés
Essayer de mémoriser les réponses
N'exprimez pas à haute voix vos idées de résolution de problèmes
Le code n'est pas assez rigoureux
N'écrivez pas de code de test
Abandonnez facilement
Vous pouvez poser des questions à l'intervieweur pendant l'entretien
-
J'ai remarqué que vous utilisez la technologie With X, comment résolvez-vous le problème Y ?
Pourquoi votre produit utilise-t-il la technologie X au lieu de la technologie Y ? Pour autant que je sache, bien que la technologie X présente les avantages A, B, C, etc., elle présente également les problèmes D et E, et la technologie Y peut résoudre les problèmes D et E.
Je ne connais pas trop la technologie X dont vous parlez, mais je pense que c'est une bonne solution. Pouvez-vous m'en dire plus sur son fonctionnement ?
Comment votre équipe planifie-t-elle le projet ? Combien de réunions régulières y a-t-il par semaine ? Quelle est la quantité approximative de code par semaine ?
La seule solution à laquelle je puisse penser pour le problème X est Y. Comment résoudriez-vous ce problème ?
Règle S.A.R.
La règle S.A.R consiste à décrire d'abord le scénario problématique, puis à expliquer les actions que vous avez entreprises et enfin à énoncer les résultats.
Cinq façons de résoudre des problèmes d'algorithme
-
Exemple de méthode : Découvrez les règles générales en donnant des exemples.
Exemple : Quelle est la probabilité qu'un triangle inscrit dans un cercle soit un triangle aigu ? Il s'agit d'une question d'entretien de Sogou. Vous pouvez connaître la réponse en dessinant au hasard trois points sur le cercle et en les reliant pour former un triangle.
-
Méthode de correspondance de modèles
Exemple : Les éléments d'un tableau ordonné sont déplacés dans une boucle, et l'ordre des éléments devient "3 4 5 6 1 2". Comment trouver le plus petit élément d'un tableau, en supposant que les éléments du tableau sont différents. Cette question ressemble tellement à la recherche binaire, nous pouvons donc apprendre de l'algorithme de recherche binaire. Le plus petit élément apparaît évidemment au tournant de "milieu > droite".
-
Méthode de généralisation simplifiée
Explication : Simplifiez la taille du problème et le type de données, puis découvrez une solution universelle.
-
Méthode de construction simple
Exemple : Trouver toutes les permutations et combinaisons possibles de "abcde". Considérons d’abord le cas de « a » uniquement, puis considérons le cas de « ab », et ainsi de suite. Vous pourriez vous retrouver avec une formule récursive. Cette approche évolue souvent vers une approche récursive.
-
Méthode de brainstorming sur la structure des données
Exemple : Générez aléatoirement des nombres et trouvez leur médiane. Pour ce genre de question, vous pouvez parcourir les structures de données que vous connaissez dans votre esprit et voir laquelle est la structure de données la plus appropriée. La question ci-dessus peut créer deux tas, un grand tas racine et un petit tas racine. Les éléments plus petits sont placés dans le grand tas racine, et les éléments plus gros sont placés dans le petit tas racine. Si les deux tas sont déséquilibrés, ils peuvent être pris. hors de l'un des tas. Mettez simplement l'élément dans un autre tas. Le terre-plein final doit être l'une des racines des deux tas.
Négociation d'emploi
Soyez confiant et proposez des exigences salariales précises
Proposez un prix légèrement plus élevé que prévu
Ne vous concentrez pas uniquement sur le salaire (de nombreuses entreprises sont plus disposées à faire des compromis sur des conditions autres que le salaire)
Utilisez la méthode la plus appropriée (vous pouvez essayer de négocier le traitement par téléphone ou par email)
Auto-évaluation
Capacité d'apprentissage (les gens de l'industrie informatique doivent constamment comprendre les nouvelles technologies, outils et méthodes)
Conscience de l'équipe (par rapport à l'héroïsme individuel, l'informatique industrie Plus prône le travail d'équipe)
Résistance au stress (l'intensité de travail de nombreuses entreprises informatiques est relativement élevée)
Attention, étudiants apprenant Java ! ! !
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4
