Les questions d'entretien JAVA (y compris les réponses) qui ont été résumées par d'innombrables entreprises ont été interviewées, et plus de 80% des aspects techniques ont été résolus!

Préface

    Récemment, de nombreux amis du groupe dans le groupe d'échange technique ont envoyé toutes les questions d'entrevue au groupe pour discussion après la récente interview. Il faisait encore relativement chaud et discutait des réponses, mais les questions d'entrevue étaient relativement dispersées, de sorte que les blogueurs Les questions d'entrevue recueillies par le Seigneur sont organisées et partagées avec vous!

Il y a une surprise à la fin de l'article!

algorithme

     Il est recommandé de préparer quelques questions courantes. Les 8 algorithmes de tri doivent être connus, puis vous pouvez trouver les 20-30 questions qui sont fréquemment testées pour la liste chaînée et l'arbre pour les absorber. Il y a aussi quelques DP, gourmands et permutations. En combinant des sujets classiques, il peut ne pas y avoir beaucoup de codes pour les graphiques, mais les algorithmes de graphes doivent encore être maîtrisés, et si nécessaire, leur parler de la topologie, Dijkstra, Prim et Kruskal.

Structure de données

     Les structures de données ne sont rien de plus que des tableaux, des listes chaînées, des piles, des files d'attente, des arborescences et des graphiques. Le plus important est de comprendre leurs scénarios d'utilisation et leurs différences. Par exemple, dans le cas des arbres, recherchez les arbres, les arbres de recherche équilibrés, les arbres rouge-noir, les arbres de préfixes, B et B +.

réseau informatique

  1. Parlons du modèle à sept couches. Que font toutes les couches? Quels sont les accords?
  2. Quelle est la différence entre TCP et UDP, leurs composants respectifs, les protocoles de couche application basés sur TCP et UDP? Leurs scénarios d'application respectifs?
  3. Poignée de main TCP à trois, quatre mains agitées, pourquoi une poignée de main à trois? Vague quatre fois? , Puis-je faire un signe trois fois, que dois-je faire si le client échoue après la connexion?
  4. Comment TCP garantit-il un processus fiable de contrôle de la congestion?
  5. Scénarios pour les causes du blocage et du déballage TCP et comment les résoudre?
  6. CLOSE-WAIT 和 TIME-WAIT?
  7. Pourquoi y a-t-il trop de connexions TIME-WAIT? résoudre?
  8. Que se passe-t-il lorsque le navigateur entre l'URL et appuie sur Entrée? Processus de requête DNS? Quand DNS utilise-t-il TCP et quand UDP utilise-t-il? CDN le sait-il?
  9. Quelle est la différence entre HTTP 1.0, 1.1 et 2.0?
  10. Format de message HTTP? Champs couramment utilisés? Mise en cache solide et mise en cache de négociation?
  11. La différence entre HTTP et HTTPS? Le processus d'établissement du HTTPS? Cryptage symétrique et cryptage asymétrique?
  12. Méthode de requête HTTP? Quelle est la différence entre GET et POST?
  13. Codes de statut communs? Quelle est la différence entre 301 et 302? Quelle est la différence entre 502 et 504?
  14. Quelle est la différence entre cookie et session?
  15. Cross-domain? Comment résoudre le cross-domain?
  16. Attaque par inondation SYN? Attaque de script XSS? falsification de demande intersite csrf? La solution?
  17. Usurpation ARP? Détournement DNS? Fenêtre idiote? et beaucoup plus. . .

système opérateur

     Personnellement, je pense que le système d'exploitation est relativement bien préparé, les principales considérations étant les threads de processus et la mémoire virtuelle. Les tests Linux sont des commandes les plus couramment utilisées, et comment résoudre les problèmes à votre place.

Exemples de questions d'entrevue:

  1. Quel est le processus? Combien d'états du processus? Que sont stockés d'une adresse basse à une adresse haute?
  2. La différence entre processus et thread?
  3. Quelles sont les méthodes de communication de processus et comparer les avantages et les inconvénients?
  4. Mode utilisateur et mode noyau?
  5. Quel est le contexte? Changement de contexte de thread de processus?
  6. Algorithme de planification de processus? Conditions nécessaires pour une impasse? La solution?
  7. Pagination et segmentation, algorithme de remplacement de page?
  8. swap partition? fonction de la fourche? Processus zombie? Processus orphelin?
  9. Cache du processeur? MESI comprend-il?
  10. Modèle IO? Multiplexage, sélection, sondage, epoll?

Multithreading Java

  1. Méthode de communication de thread en Java
  2. Verrouillage optimiste en Java? Problème CAS? Quand utiliser le verrouillage optimiste?
  3. mot-clé volatile? Comment éviter une réorganisation? Instructions de bas niveau?
  4. Sychronisé contre ReentrentLock?
  5. Comment mettre en œuvre la couche inférieure sychronisée? Qu'est-ce que MarkWord? Verrou de biais, serrure légère, serrure lourde? Comment régler le paramètre de rotation?
  6. Comment fonctionne AQS? Comment mettre en œuvre un verrouillage équitable et un verrouillage injuste?
  7. Verrou en lecture-écriture? Verrouiller la rétrogradation? Quelles informations sont stockées dans les 16 bits supérieurs et les 16 bits inférieurs de la variable?
  8. CountDownLatch 、 CyclicBarrier 、 Sémaphore?
  9. Pool de threads? 7 grands paramètres? Processus de travail du pool de threads? Pourquoi n'est-il pas recommandé d'utiliser le pool de threads intégré? Comment définir le nombre de cœurs?
  10. Ecrire à son tour un producteur consommateur, bloquer la file d'attente, l'impression multi-thread ABC? Attendez

JVM

     Tout d'abord, je saisis principalement la division mémoire de JVM, ce que chaque partie stocke et fait, la division du tas, le principe d'allocation d'objets (l'objet est dans l'ancienne ou la jeune génération, comment le déplacer), l'algorithme de ramassage des ordures, et comment étiqueter les objets (méthode de comptage de références) Inconvénients de la méthode GCroots, quels objets peuvent être utilisés comme racines), de quelles parties de l'objet sont composées, garbage collector (c'est-à-dire que G1, CMS peut principalement regarder, puis vous pouvez regarder le collecteur ZGC), principe de délégation parentale et destruction, Le processus de chargement de la classe (vous pouvez démarrer à partir du processus de .java générant .class, compilateur JIT) et ainsi de suite.

La plupart des problèmes les plus courants sont liés au réglage de la JVM. Comment le dire est basé sur votre propre compréhension et la différence du projet.

Cadre

     Dans l'entrevue, je regarde principalement les principes et la compréhension de chaque cadre, comme Spring's IOC, AOP? Comment résoudre la dépendance circulaire? Le cycle de vie d'un haricot? Quel est le processus de démarrage de SpringBoot? Quelles sont les parties du framework RPC?

Lors de l'entretien, il n'y a pas encore beaucoup de questions sur le cadre, les questions portent toutes sur les caractéristiques et les principes. Certaines questions courantes ne sont pas assez importantes pour passer un peu de temps à se préparer.

base de données

  1. La différence entre les moteurs?
  2. Index (échec? Index commun? Principe de création d'index?)
  3. Verrouillage (verrouillage de ligne? Verrouillage de table? Verrouillage d'espace?)
  4. Transaction (niveau d'isolement, comment RR évite la lecture non répétable (MVCC)? Comment éviter la lecture fantôme (MVCC + gap lock)?)
  5. Index d'arborescence B + et index de hachage, index clusterisé et index non clusterisé?
  6. Retour à la requête de table et à la couverture d'index?
  7. Quel est le processus d'exécution d'un SQL?
  8. Comment optimiser la pagination si les données sont trop volumineuses?
  9. Que font les différents journaux?
  10. Comment dépanner si SQL est trop lent? Le domaine clé de Explain?
  11. Comment transformer LUR en MySQL? Pourquoi avez-vous changé cela? et beaucoup plus.
  12. Réplication maître-esclave? La base de sous-base de données et de sous-table?

Redis

  1. Pourquoi Redis est-il rapide?
  2. Méthode de persistance Redis?
  3. type de données? La structure de données sous-jacente?
  4. Stratégie d'expiration et stratégie d'élimination de la mémoire?
  5. Scénarios d'application Redis?
  6. Quels sont les avantages du traitement par lots par pipeline?
  7. Principe de la réplication maître-esclave? Le cluster comprend-il? Comment déterminer sur quel nœud une clé tombe? Comprenez-vous le hachage cohérent? Quels sont les inconvénients? Comment y faire face?
  8. Cache avalanche, pénétration du cache
  9. Comment assurer la cohérence des données du cache et de la base de données? et beaucoup plus.

Intergiciel

     En ce qui concerne les middlewares, la première chose à comprendre peut être les files d'attente de messages.J'utilise RabbitMq le plus souvent, mais j'ai également besoin de comprendre d'autres fonctionnalités du produit et des scénarios d'application, comme la comparaison de Kafka et RocketMq. Questions fréquemment posées telles que:

  1. Quel est le scénario d'application de la file d'attente de messages?
  2. Comment s'assurer que le message est fiable?
  3. Comment s'assurer que les consommateurs sont idempotents?
  4. Comment assurer l'ordre des messages?
  5. Que dois-je faire s'il y a beaucoup de backlog MQ? Attendre.

distribué

     Les connaissances distribuées doivent encore être maîtrisées. Après tout, le futur système ne peut pas être déployé en un seul point. Pouvez-vous regarder la théorie du CAP? Théorie de BASE? Transaction distribuée? Plan de limitation actuel? Stratégie de génération d'identifiants distribués? Serrure distribuée? Ou des composants Hystrix couramment utilisés, etc. La plupart des examens sont encore passés pendant l'entrevue.

Type de Big Data

Vous pouvez examiner quelques autres questions de ce type. La plupart des idées sont les mêmes, il est donc préférable de se préparer, par exemple:

  1. Nombre entier de données de masse, limitation de la mémoire pour trouver la médiane?
  2. Comment déterminer rapidement si une URL existe parmi 10 milliards d'URL?
  3. TOP100 temps de recherche pour des données massives? et beaucoup plus.

Pour résumer

L'entretien est une guerre prolongée, dans ce processus, non seulement vous obtiendrez la satisfaction de l'offre , exercerez leurs compétences et améliorerez leur intelligence émotionnelle , mais aussi vous vous ferez des amis de divers endroits , le groupe s'est battu avec vos amis!

Le tranchant de l'épée vient de l'aiguisage, et le parfum de la fleur de prunier vient du froid mordant. Je vous souhaite à tous une offre satisfaisante.

 L'éditeur a également trié les questions et réponses d' entretien : cliquez ici pour l'obtenir gratuitement, le code: CSDN , il y a plus de sujets d'interview et de vidéos de grandes entreprises!

 Ce n'est pas facile d'écrire un article. Si vous pensez que c'est utile, veuillez suivre et soutenir l'éditeur. Vous êtes également invités à poser des questions, merci! ! !

 

Je suppose que tu aimes

Origine blog.csdn.net/qq_43080036/article/details/108996420
conseillé
Classement