Table Des Matières: Questions D'Entretien Pour Ingénieur Fullstack Java/Angular
Table Des Matières: Questions D'Entretien Pour Ingénieur Fullstack Java/Angular
Table Des Matières: Questions D'Entretien Pour Ingénieur Fullstack Java/Angular
Polymorphisme
Héritage
Abstraction
L'abstraction est un processus consistant à masquer les détails de la l’implémentation à
l'utilisateur. Seulement la fonctionnalité sera fournie à l'utilisateur.
Design Pattern
Le mot-clé static indique qu'une variable ou une méthode membre peut être
accédée, sans nécessiter une instanciation de la classe à laquelle elle
appartient. Un utilisateur ne peut pas remplacer les méthodes statiques dans
Java , car la substitution de méthode est basée sur la liaison dynamique au
moment de l'exécution et les méthodes statiques sont liées statiquement au
moment de la compilation. Une méthode statique n'est associée à aucune
instance d'une classe, de sorte que le concept n'est pas applicable.
Quels sont les types de données supportés par Java ? Qu'est-ce que
Autoboxing et Unboxing ?
● Octet
● Court
● Int
● Long
● Float
● Double
● Boolean
● Char
Non, Java ne prend pas en charge l'héritage multiple. Chaque classe est capable
de s'étendre uniquement sur une classe, mais est capable d'implémenter plus
d'une interface.
Lorsqu'un objet est passé par valeur, cela signifie qu'une copie de l'objet est
transmise. Ainsi, même si des modifications sont apportées à cet objet, cela
n'affecte pas la valeur d'origine. Quand un objet est passé par référence, cela
signifie que l'objet réel n'est pas passé, plutôt qu'une référence de l'objet est
passée. Ainsi, toutes les modifications apportées par la méthode externe sont
également reflétées dans tous les endroits.
Quels sont les deux types d'exceptions en Java ? Quelles sont les différences
entre eux ?
Java a deux types d’exceptions : les exceptions vérifiées et les exceptions non
contrôlées. Les exceptions non vérifiées n'ont pas besoin d'être déclarées dans
une méthode ou dans la clause throws d'un constructeur, si elles peuvent être
lancées par l'exécution de la méthode ou du constructeur, et propagées en
dehors de la méthode ou de la frontière du constructeur. D'un autre côté, les
exceptions vérifiées doivent être déclarées dans une méthode ou dans la clause
throws d'un constructeur. Voir ici pour des conseils sur la gestion des
exceptions Java .
Java 8 est livré avec plusieurs nouvelles fonctionnalités, mais les plus
importantes sont les suivantes :
En termes très simples, une expression lambda est une fonction qui peut être
référencée et transmise en tant qu'objet.
Les expressions lambda introduisent un traitement de style fonctionnel en Java
et facilitent l'écriture de code compact et facile à lire.
Pour cette raison, les expressions lambda remplacent naturellement les classes
anonymes en tant qu'arguments de méthode. L'une de leurs principales
utilisations est de définir des implémentations en ligne d'interfaces
fonctionnelles.
Qu'est-ce qu'un Stream ? En quoi diffère-t-il d'une collection ?
C’est une séquence d’éléments sur laquelle on peut effectuer un groupe d’opérations
de manière séquentielle ou parallèle.
● Spring
Qu'est-ce que Spring Framework?
● Setter Injection
● Constructeur Injection
● Injection de champ
Les beans de spring sont des objets Java qui sont initialisés par le conteneur
Spring IoC.
Quelle est la portée du bean par défaut dans Spring framework?
● singleton
● prototype
● demande
● session
● session globale
Non, les beans singleton ne sont pas adaptés aux threads, car la sécurité des
threads concerne l'exécution, tandis que le singleton est un modèle de
conception centré sur la création. La sécurité des threads dépend uniquement
de l'implémentation du bean elle-même.
À quoi ressemble le cycle de vie du bean de Spring?
C'est l'une des façons de configurer les applications basées sur Spring de
manière sécurisée. C'est une alternative à la configuration basée sur XML.
Pouvons-nous avoir plusieurs fichiers de configuration Spring dans un projet?
@Autowired
Cette annotation est appliquée aux champs, aux méthodes setter et aux
constructeurs. L' annotation @Autowired injecte la dépendance d'objet
implicitement.
Lorsque vous utilisez @Autowired sur des champs et que vous transmettez les
valeurs des champs à l'aide du nom de la propriété, Spring affecte
automatiquement les champs aux valeurs transmises.
@Configuration
Cette annotation est utilisée sur les classes qui définissent les
beans. @configuration est un fichier XML de configuration analogique - c'est
une configuration utilisant la classe Java. La classe Java annotée
avec @Configuration est une configuration en elle-même et aura des
méthodes pour instancier et configurer les dépendances.
@bean
Cette annotation est utilisée au niveau de la méthode. L' annotation @
Bean fonctionne avec @Configuration pour créer des beans Spring. Comme
mentionné précédemment, @ Configuration aura des méthodes pour
instancier et configurer les dépendances. Ces méthodes seront annotées
avec @ Bean . La méthode annotée avec cette annotation fonctionne comme
ID de bean et crée et renvoie le bean réel.
@lazy
Cette annotation est utilisée sur les classes de composants. Par défaut, toutes
les dépendances auto-générées sont créées et configurées au démarrage. Mais
si vous voulez initialiser un bean paresseusement, vous pouvez utiliser
l' annotation @Lazy sur la classe. Cela signifie que le bean sera créé et initialisé
seulement quand il est demandé pour la première fois. Vous pouvez également
utiliser cette annotation sur les classes de @configuration . Ceci indique que
toutes les méthodes @ Bean dans @ Configuration doivent être
paresseusement initialisées.
@ Component
Cette annotation est utilisée sur les classes pour indiquer un composant
Spring. L' annotation @Component marque la classe Java en tant que bean ou
dit composant afin que le mécanisme d'analyse des composants de Spring
puisse être ajouté au contexte de l'application.
● Devops
Microservice:
Les microservices désignent à la fois une architecture et une approche de développement logiciel,
qui consiste à décomposer les applications en éléments les plus simples, indépendants les uns des
autres
Kafka:
Kafka est un système de messagerie de type publication/abonnement gérée par la fondation Apache.
Docker:
Docker est un projet Open Source proposant une surcouche qui automatise et simplifie le
déploiement d’applications dans des conteneurs virtuels.
Container:
Un conteneur est une enveloppe virtuelle qui permet de packager une application avec tous les
éléments dont elle a besoin pour fonctionner : fichiers source, runtime, librairies, outils et fichiers. Ils
sont packagés en un ensemble cohérent et prêt à être déployé sur un serveur et son OS.
Docker Swarm:
Docker Swarm est un outil conçu par Docker permettant de gérer un cluster de Container très
facilement. En plus d'être simple à implémenter, Docker Swarm est extrêmement performant. Il peut
supporter mille noeuds et cinquante mille container sans aucune dégradation de performance.
Kubernetes
Kubernetes est l'orchestrateur de conteneurs de référence, développé par google. Il facilite le
déploiement, la résilience et la scalabilité de vos applications, y compris dans une stratégie hybride
ou multicloud.
Maven:
Maven est un outil permettant d'automatiser la gestion de projets Java.
Jenkins:
Jenkins est un outil logiciel d’intégration continu. Il s’agit d’un logiciel open source, développé à l’aide
du langage de programmation Java. Il permet de tester et de rapporter les changements effectués
sur une large base de code en temps réel
Intégration continue:
L’intégration continue est une pratique de développement permettant aux développeurs
d’apporter des changements à un code source dans un dossier partagé plusieurs fois par jour
ou plus fréquemment. Les changements sont ensuite intégrés.
● WebService
Service Web:
Quelles sont les différences entre les services Web SOAP et les services Web
REST ?
Le service Web SOAP et REST ne peut pas être comparé directement, voir ci-
dessous les différences.
SOAP prend en charge les appels REST est totalement opérations sans
4 complets d'état état
SOAP nécessite un wrapper XML pour REST est plus léger, cette raison REST est
9 toutes les requêtes et réponses préparé pour les appareils mobiles
● Hibernate
Définition ?
Hibernate est une solution open source de type ORM (Object Relational
Mapping) qui permet de faciliter le développement de la couche persistance
d'une application. Hibernate permet donc de représenter une base de données
en objets Java et vice versa.
● Angular
Quelle est la différence entre la one-way binding et la two-way binding ?
- one-way binding implique que la variable scope dans le html sera définie sur
la première valeur à laquelle son modèle est lié (assignée à)
- two-way binding implique que la variable scope changera sa valeur chaque
fois que son modèle est assigné à un autre valeur
Charger les modules à la demande , Une fois que l'utilisateur naviguera vers
cette route, Angular chargera le chunk du module correspondant.
Data binding.
- Event binding: U
- Module: U
Composent Angular.
- Directive: Un
- Service: Un
- Pipe: Un
SPA est le concept selon lequel les pages sont chargées à partir du serveur, non
pas en effectuant des publications, mais en créant une seule page de shell ou
une page maître et en chargeant les pages Web dans la page maître.
Décorateurs de classe
Décorateurs de propriétés
Décorateurs de méthode
Décorateurs de paramètres