[Atterri avec succès à terre] J'ai atterri à terre. Après avoir travaillé pendant 2 ans, j'ai obtenu avec succès l'offre d'Ali dans ce recrutement d'automne. Je suis ici pour offrir mon expérience d'entrevue et je souhaite!

Préface

Ce que j'ai à dire ici, c'est que faire un vœu en ligne est vraiment bien, j'espère que tout le monde recevra l'offre qu'il souhaite avant le double festival, et profitera du double festival. Qiuzhao a interviewé trois départements d'Ali, 11 fois au total. Finalement, le processus a choisi la santé, et a heureusement reçu une lettre d'intention pour la santé. Parmi eux, Ali a fait des entretiens de santé sept fois, principalement parce qu'ils ne sont pas entrés dans le processus deux fois avant, et cinq fois après avoir commencé le processus (4 + 1). Mais dans l'ensemble, c'est bien de pouvoir entrer Ali. Après tout, je suis diplômé depuis deux ans maintenant! J'espère avoir un environnement de travail agréable après mon entrée. Parlons de mes nerfs faciaux. Je ne m'en souviens peut-être pas très clairement, mais les points clés seront écrits ci-dessous! Je mettrai également mes notes techniques et notes sources ci-dessous, j'espère que cette expérience vous sera utile!

De plus, je suis ici pour préparer pour tout le monde le matériel d'entrevue des fabricants de première ligne et mes documents techniques PDF originaux super durs, ainsi que de nombreuses séries de questions d'entrevue (mises à jour en permanence) que j'ai préparées pour tout le monde. besoin de cliquer ici pour remarquer csdn, téléchargez-le vous-même! J'espère que tout le monde pourra trouver l'emploi qu'il veut!

Côté Ali

  • Le projet le plus impressionnant de tous les temps? (Projet de chat)
  • Quels sont les journaux MySQL? Pour quoi sont-ils utilisés? (Undo log, redo log, binlog)
    table de base de données et base de données? (Je ne l'ai pas pratiqué, et j'ai parlé de la théorie du sous-tableau horizontal et du sous-tableau vertical) Comment réaliser l'ID unique global du sous-tableau de la sous-base de données?
  • Base de données ACID?
  • Le niveau d'isolement des transactions de base de données?
  • Des idées d'optimisation pour les requêtes lentes?
  • Après avoir réalisé ce projet, comment avez-vous amélioré la base de données? (Quelque chose à propos des contraintes de clé étrangère)
  • Comment la couche inférieure de l'opération put de Java HashMap est-elle implémentée?
  • Quels sont les paramètres du constructeur du pool de threads?
  • Quelle est la différence entre Lock et synchronized?
  • Le principe d'implémentation sous-jacent de la classe AtomicLong
  • État du fil
  • Utilisez-vous réellement trop de threads? (Non……)
  • Dans quelles circonstances une impasse se produira-t-elle?
  • Division de la mémoire JVM?
  • Division du tas Java?
  • Pourquoi devons-nous nous séparer?
  • Que sait le garbage collector?
  • Quels objets seront récupérés par la JVM?
  • Que comprend GC ROOTS?
  • Dépannage du MOO? (ne sait pas……)
  • Comment Java utilise-t-il la réflexion pour obtenir les champs d'une classe?
  • Chargeurs de classe courants?
  • Quel code source du framework avez-vous vu?
  • Quelle est la différence entre Spring @Autowired / @Resource?
  • Le principe de l'injection de dépendance Spring
  • Quelles sont les portées des haricots de printemps
  • La différence entre session et cookie
  • Comment identifier la session (identifiant de session stocké dans le cookie)
  • Structure des messages HTTP
  • Code d'état HTTP
  • Quels sont les modèles Java IO?
  • Quelle est la différence entre synchrone / asynchrone, bloquant / non bloquant?
  • Netty comprend-il? (Je ne comprends pas ...)
  • Vous parlez de quelques modèles de conception? Quels modèles de conception sont utilisés au printemps?
  • Comment Java implémente-t-il les singletons?
  • Théorie de la PAC?
  • Quels sont les moyens de mettre en œuvre des transactions distribuées? (Je ne sais pas ...)
  • Quelle est la conception de l'architecture des microservices?
  • la cyber-sécurité? (Je viens de parler des attaques passives, des attaques actives, etc. Je ne sais pas grand-chose à ce sujet)
  • Quels sont les types de données Redis?
  • Comment les futures orientations de développement sont-elles envisagées?
  • Écrivez-vous habituellement des articles / blogs?
  • Avez-vous fait d'autres projets?

Deux côtés

  • Parlez-moi du projet que vous trouvez le plus difficile. Où est la difficulté?
    Réponse: Une plate-forme de programmation de tâches orientée microservice qui prend en charge la compilation, l'exploitation et la visualisation de la pile.

  • Parlez-moi des modules dont vous êtes responsable.
    Réponse: Responsable de l'encapsulation et du microservice des modules compilés.

  • Dites-moi comment l'encapsuler.
    Réponse: Le langage C est pris en charge, donc g ++ et gdb sont encapsulés.

  • Parlez-moi des commandes couramment utilisées de gdb (j'ai demandé cela d'un côté, voici un supplément)
    Réponse: gdb -o, gdb -r, gdb -n, gdb -s

  • Quelle commande dans gdb saute? (J'ai demandé cela au fait d'un côté, voici un supplément)

  • Pouvez-vous parler du processus de compilation du langage C? Processus de compilation et de chargement (j'ai demandé cela d'un côté, voici un supplément)
    Réponse: Fichier d'en-tête du programme source C ---> traitement pré-compilé (cpp) - -> le compilateur lui-même --> Optimizer --> Assembler --> Linker --> Fichier exécutable. Le prétraitement est utilisé pour remplacer tous les fichiers d'en-tête #include et les définitions de macro par leur contenu réel. Après le prétraitement, le fichier texte est toujours obtenu, mais la taille du fichier sera beaucoup plus grande. L'étape suivante consiste à compiler le fichier c entier. Dans cette étape, le fichier .s correspondant est généré. À ce stade, il s'agit d'un code d'assemblage, tel que mov AB. Après cela, il y aura un processus d'optimisation, un certain réarrangement et autres, une optimisation. Ensuite, il est en fait assemblé en code machine. Ensuite, le code machine généré peut faire référence à de nombreux fichiers externes, utilisez donc des liens pour lier des fichiers externes. Voici la différence entre le lien dynamique et le lien statique, qui est plus mémorable.

  • Dans quelles circonstances la liaison dynamique et la liaison statique sont-elles utilisées?
    Réponse: L'opération statique est rapide, mais la compilation est lente, et elle prend de la mémoire, et la mise à jour de la fonction de bibliothèque doit être recompilée avant de pouvoir être utilisée. La compilation dynamique s'exécute lentement, mais le programme compilé occupe moins de mémoire. La mise à jour des fonctions de la bibliothèque n'a pas besoin de réécrire le compilateur, et de ne revenir en arrière pour lier les fichiers requis que si nécessaire.

  • Le projet fait-il référence à des projets open source?
    Réponse: Oui, référez-vous à eclipse che

  • Quels sont les points d'optimisation du projet?
    Réponse: Le projet open source original a été modifié en fonction de la situation actuelle de notre équipe de projet.

  • Pour la compréhension des microservices, springcloud et dubbo en parleront
    R: J'ai parlé de la principale différence entre la méthode d'appel http. D'autres, comme le centre d'enregistrement ou le suivi des liens, les passerelles sont de conception similaire. J'ai comparé Tars, qui est également un cadre de microservice, et parlé de ma propre compréhension.

  • Comment implémenter le framework rpc
    Réponse: L'appelant encapsule différentes classes via le mode proxy. La classe proxy effectue des appels à distance, principalement pour la sérialisation. L'extrémité distante désérialise, obtient les données et trouve la classe appelante par réflexion pour exécuter la méthode. Revenez ensuite au résultat. Par conséquent, l'appelant utilise le service distant comme s'il s'agissait d'une classe locale. (L'exigence est la structure de la classe, à la fois sur l'appelant et le non-appelant)

  • Qu'est-ce qui est fier de l'université?
    Réponse: capacité multi-thread, moniteur, ministre, conseiller adjoint, développer des projets en ligne, publier des articles SCI, à temps partiel. A rempli plusieurs tâches ensemble, et tous ont conservé d'excellentes notes et obtenu les qualifications pour la recherche.

  • Parlez-moi de vos lacunes?
    Réponse: Je me donne trop peu de temps, je fais de l’exercice et je n’ai pas le temps de réfléchir profondément à la vie.

  • En parlant de multithreading, comment apprendriez-vous le multithreading?
    Réponse: Les blogs, Mukenet, Zhihu et les internautes recommandent des livres à étudier. Le volume mensuel de visites de mon blog est stable et cassé.

  • Le document parle du principe.
    Réponse: Le document de ré-identification explique comment y parvenir et où se trouve l'innovation.

  • Parlez du moteur de base de données
    A: b + tree, l'avantage est que seuls les nœuds feuilles ont des données, les nœuds non feuilles n'enregistrent que la valeur de clé, ce qui est pratique pour lire plusieurs clés à la fois, de sorte qu'un nœud non-feuille en a plusieurs fils (une clé indique un fils)), l'arbre devient nain et plat, donc le nombre d'E / S sera moindre. En détail, une fois que io vaut 16k par défaut, si une clé est de 2 octets, alors les nœuds avec 8k fils peuvent être lus, et des centaines de milliers de données peuvent être trouvées dans seulement 3 ios. Et dit que lors de la numérisation, vous pouvez effectuer une requête de plage vers la droite. On a également parlé de l'index de clé en cluster et de l'index auxiliaire non groupé. Retour au phénomène de table et couverture de l'index.

  • Dites-moi comment savoir qu'un fil est entré dans une boucle sans fin?
    Réponse: vidage pour exporter les informations de la pile, vérifiez l'état du thread, s'il est en cours d'exécution depuis longtemps. Si tel est le cas, recherchez la méthode exécutée dans le thread. Ensuite, on m'a demandé s'il y avait d'autres options? Répondez au débogage et recherchez-le directement.

Trois côtés

  • Auto-introduction

  • En creusant profondément dans le projet, une partie de celui-ci est l'analyse et le dépannage des problèmes de thread, et j'ai demandé comment regarder la pile de threads et que regarder? ,

  • Comment identifier le fil problématique?

  • S'il y a un projet dont le nombre de threads augmente lentement, quelles sont les raisons possibles et comment le résoudre?

  • Que fait le projet de laboratoire (parce que le projet de laboratoire est un projet national de réalisation d'ingénierie, il y a plus de questions)?

  • De quoi êtes-vous responsable dans le projet de laboratoire? Comment l'algorithme correspondant est-il conçu?

  • L'implémentation sous-jacente de Synchronized, comment la tête change-t-elle à chaque étape du processus de mise à niveau, du verrouillage du biais au verrouillage du poids? Quand l'escalade de verrouillage à chaque étape sera-t-elle déclenchée?

  • Expliquer le principe de l'AQS

  • À quelles occasions g1 et cms conviennent-ils? Quelles sont les améliorations apportées à g1?

  • Quel est le problème avec la méthode de comptage dans l'algorithme de marque de garbage

  • Qu'est-ce qui cause le nombre excessif de connexions syn_sent dans le processus de connexion TCP?

  • Quels sont les mécanismes de propagation des transactions et à quels scénarios sont-ils appliqués?

  • Un seul tableau d'incrément, déplacez la partie avant à la fin, comment trouver le plus grand

  • Avez-vous déjà participé à des compétitions?

  • Les résultats des tests écrits sont bons, comment apprendre les algorithmes?

  • Deux cordes, chaque corde brûlée pendant 1 heure, la longueur de la corde n'a rien à voir avec le temps de combustion, comment mesurer 15 minutes

  • Il y a 100 pierres, A et B sont prises en alternance, chacune prend 1-5 pièces à la fois, si A prend en premier, la première fois que vous prenez quelques pièces pour vous assurer que vous gagnerez à la fin

  • Trouver la somme des plus grands nombres de sous-chaînes

  • Lors du tri des données d'un gros fichier, la mémoire ne rentrera certainement pas, que dois-je faire? (Répondre à l'extérieur de la ligne, diviser et conquérir + fusionner / perdre l'arbre)

  • Tri des idées et processus de tas

  • Comment la structure de concurrentHashMap assure-t-elle la sécurité des threads? Avez-vous besoin de verrouiller la méthode get et pourquoi?

  • La fonction et le principe de mise en œuvre de voliate, quelles sont les barrières de mémoire et à quoi servent les exemples?

  • Quels sont les inconvénients de CAS et comment résoudre le problème ABA?

  • Pourquoi Myisam est-il plus rapide qu'innoDB dans les scénarios en lecture seule?

  • En approfondissant le projet de stage, avez-vous envisagé l'automatisation pour réaliser les fonctions correspondantes, avez-vous envisagé le plan d'optimisation et comment l'améliorer?

  • Pourquoi HashMap n'est-il pas thread-safe, par exemple comment il est thread-safe?

  • Dans quel but utilisez-vous habituellement redis?

  • Lien rhétorique

Pour résumer

Enfin, j'ai préparé le matériel d'apprentissage de l'architecture Java pour tout le monde. Le contenu de la technologie d'apprentissage comprend: Spring, Dubbo, MyBatis, RPC, analyse de code source, haute concurrence, haute performance, distribué, optimisation des performances, développement d'architecture avancée de microservices, etc. Les amis dans le besoin peuvent cliquer ici pour remarquer csdn et télécharger par eux-mêmes ! En tant que programmeur, il est nécessaire d'enrichir ses réserves de connaissances et de rehausser la profondeur et l'étendue de ses connaissances, à mon avis, les récompenses seront à la hauteur de ce que vous payez.

Il existe également des points de connaissances de base Java + un ensemble complet de matériels et de vidéos d'apprentissage pour architectes + des collections d'entretiens de première ligne + des modèles de CV d'interview + Alibaba Meituan Netease Tencent Xiaomi Iqiyi Kuaishou Bilibili questions d'entrevue + Collection de code source Spring + architecture Java électronique de combat réelle Partager le livre avec tout le monde gratuitement!

Je suppose que tu aimes

Origine blog.csdn.net/jiagouwgm/article/details/111565006
conseillé
Classement