


Questions d'entretien Java intermédiaires et avancées (avec réponses)
1. Comment synchroniser Redis avec les données locales ?
Le programme synchronisera le fonctionnement de redis lors de la mise à jour, de l'ajout et de la suppression de mysql
Le programme interroge redis, s'il n'existe pas, il interroge mysql et enregistre automatiquement redis
2. Combien de structures de données Redis possède-t-il ?
set, list, hash, string, zset
3. Comment est provoqué le débordement de mémoire Java ?
OutOfMemoryError :
(1)PerGern Space Un grand nombre de pots ou de classes sont utilisés dans le programme, de sorte que la machine virtuelle ne dispose pas de suffisamment d'espace pour charger la classe.
Solution : Ajustez les paramètres XX:PermSize et XX:MaxPermSize, réduisez les packages jar et réduisez les chargements répétés des classes
(2) Java Heap
La création de machines virtuelles Space Java est aussi Plusieurs objets. Solution : Ajustez les paramètres Xms (taille initiale du tas) et Xmx (taille maximale du tas), vérifiez les boucles infinies ou la création inutile d'objets en double.
(3) impossible de créer un nouveau thread natif
JVM prend trop d'espace mémoire, et la création d'un thread dans JVM nécessite la création d'un thread dans le système d'exploitation. Solution : Ajustez la taille du thread dans la JVM.
4. String s = « 123 », combien d'objets sont générés par cette instruction ?
S'il n'y a pas de "123" dans le pool de chaînes, générez-en un et placez-le dans le pool constant. S'il y a "123", générez 0
5. , nouvelles fonctionnalités du JDK8, décrites avec des exemples
(1) expression lambda : programmation fonctionnelle, référence de méthode
(2) API Stream
(3 ) Par défaut méthode de l'interface
(4) Amélioration de l'API de date et d'heure, nouvelle méthode DateTimeFormatter
6. Résoudre une concurrence élevée et une charge élevée
( 1) Rendre le HTML aussi statique que possible, utiliser le CMS du système de saisie et de publication d'informations pour générer automatiquement des pages statiques pour la saisie d'informations et mettre en cache les données dynamiques qui ne changent pas fréquemment sur le front-end.
(2) Accélération CDN, distribution de CSS/JS et d'autres ressources sur différents serveurs
(3) Cacher des données qui ne changent pas fréquemment (Redis, memcache).
(4) Le serveur d'images est séparé du serveur d'applications.
(5) Cluster
7. Quel est le rôle des modèles producteur et consommateur ?
(1) Améliorer l'efficacité opérationnelle de l'ensemble du système en équilibrant la capacité de production et le pouvoir d'achat des consommateurs (2) Découplage
Mybatis Niveau 1, Niveau 2. Cache
(1) Cache de niveau 1 : cache local HashMap basé sur PerpetualCache, qui stocke la portée de la session. Lorsque la session
se vide ou se ferme, tout le cache de la session sera vidé. .
(2) Le cache de deuxième niveau a le même mécanisme que le cache de premier niveau, par défaut, il utilise également le stockage PerpetualCache et HashMap. La différence réside dans le mappeur de portée de stockage et la source de stockage peut. être personnalisé si vous devez activer le cache de deuxième niveau. Ajoutez
au fichier de mappage SQL. 9. Décrivez le processus détaillé d'un service de la publication à la consommation
Obtenez d'abord les informations de configuration zk, puis obtenez le. URL qui doit être exposée. Appelez ensuite la méthode de registre et d'enregistrement pour enregistrer l'URL sur zookeeper
10. Comment réaliser l'équilibrage de charge ? Quels algorithmes peuvent être obtenus ?
Aléatoire, round-robin, hachage cohérent et maître-esclave
11. Si vous le souhaitez, comment implémentez-vous Spring AOP ?
La mise en œuvre de la technologie AOP est principalement divisée en deux catégories : l'une est l'utilisation de la technologie de proxy dynamique, qui utilise la méthode d'interception des messages pour décorer les messages afin de remplacer l'exécution du comportement de l'objet d'origine.
La seconde consiste à utiliser le tissage statique pour introduire une syntaxe spécifique pour créer des "aspects", afin que le code lié aux "aspects" puisse être tissé dans le compilateur
12. Comment pour éviter les soumissions répétées de pages ?
Environnement de cluster : utilisez un jeton plus redis (redis est monothread, le traitement doit être mis en file d'attente)
Processus de traitement :
1. vous devez le soumettre au service Demander un jeton, mettre le jeton dans la mémoire Redis et la durée de validité du jeton est
2. Après la soumission, l'arrière-plan vérifiera le jeton, supprimera le jeton en même temps, générer un nouveau token et le renvoyer
13. Qu'est-ce que micro Serve ?
Divisez le projet en microservices selon différentes règles métier et déployez-les sur différentes machines. Les services s'appellent
14. Qu'est-ce qu'un service web ?
(1) Un service Web est une application qui expose une API qui peut être appelée via le Web vers le monde extérieur
(2) Les données sont transmises sur la base du protocole HTTP , ce qui permet d'exécuter différentes applications sur différentes machines peuvent échanger des données ou s'intégrer les unes aux autres sans recourir à des logiciels et du matériel tiers spécialisés supplémentaires
15. Parlez-moi des raisons pour lesquelles vous avez choisi Struts2 pour votre projet?
①Action est une classe POJO, ne repose pas sur l'API Servlet et a une bonne testabilité ; ②Un intercepteur puissant simplifie la complexité du développement
③Prend en charge la technologie de couches de performances multiples : JSP, Freemarker ; , etc. ; ④Méthode de vérification flexible ; ⑤Support de l'internationalisation (I18N) ⑥Gestion déclarative des exceptions
⑦Simplification d'Ajax via le plug-in JSON ⑧Intégration avec le plug-in Spring via Spring ; sur la différence entre les intercepteurs et les filtres ?
Les intercepteurs et les filtres peuvent être utilisés pour implémenter des fonctions d'attention transversales. Les principales différences sont : ①Les intercepteurs sont basés sur le mécanisme de réflexion JAVA, tandis que les filtres sont basés sur des rappels de fonctions
②Les filtres dépendent du servlet. conteneur, alors que l'intercepteur ne dépend pas du conteneur Servlet
③ L'intercepteur ne peut fonctionner que sur les requêtes d'action (méthodes en action), tandis que les filtres peuvent fonctionner sur presque toutes les requêtes (CSS JSP JS)
17. Quels types de gestion de transactions Spring prend-il en charge ?
Gestion programmatique des transactions : gérer les choses par programmation, grande flexibilité, difficile à maintenir
Gestion déclarative des transactions : le code métier et la gestion des transactions peuvent être séparés, utilisez uniquement les annotations et la configuration XML pour gérer choses
site Web chinois php, un grand nombre de tutoriels d'introduction à Java gratuits, bienvenue pour apprendre en ligne !
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 de la racine carrée en Java. Nous discutons ici du fonctionnement de Square Root en Java avec un exemple et son implémentation de code respectivement.

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 numéro Armstrong en Java. Nous discutons ici d'une introduction au numéro d'Armstrong en Java ainsi que d'une partie du 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
