Maison Java JavaQuestions d'entretien Questions d'entretien Java intermédiaires et avancées (avec réponses)

Questions d'entretien Java intermédiaires et avancées (avec réponses)

Nov 14, 2019 pm 04:51 PM
java 中级

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!

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Racine carrée en Java Racine carrée en Java Aug 30, 2024 pm 04:26 PM

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.

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

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.

Numéro Armstrong en Java Numéro Armstrong en Java Aug 30, 2024 pm 04:26 PM

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.

Générateur de nombres aléatoires en Java Générateur de nombres aléatoires en Java Aug 30, 2024 pm 04:27 PM

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.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

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.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

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.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

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.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

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

See all articles