Maison >développement back-end >Golang >Questions d'entretien Go récemment publiées (Baidu et MiHoYo)
Les deux sociétés ont utilisé des entretiens en ligne. Il n'y a eu aucun enregistrement à l'époque. Maintenant, je me fie entièrement à mes propres souvenirs pour les revoir. go
技术岗位,一家百度,一家米哈游,面试的情况也不太乐观,现在分享一下面试中问的问题吧。
两家都是采用线上面试的,当时没有录音,现在全靠自己的回忆来复盘一下了。
百度的面试步骤分为计算机基础、go
相关、mysql
相关、redis
相关、linux
相关问题。还有一些发散性的问题。
tcp
、ip
相关的一些问题,比如三次握手、四次挥手、time_wait
等等。这一块的话,我回答的是稀碎,算法和数据结构我一个都没答上来,后面两个因为之前面试问到过,所以查过一些,回答的还算可以。
GC
,(面GO
必问题),GC
中stw
时机,各个阶段是如何解决的。gpm
,(面GO
必问题),这个必须要完全理解,抢占式调度是如何抢占的,怎么调度goroutine
的,M
和P
的数量问题。goroutine
池(这个回答的稀碎)我面试结束后,一般都会问面试官,根据这次面试,针对我的技术上面,有什么好的建议或者意见,这位面试官给我的回答是:计算机基础比较薄弱,但是业务能力很强。这也是我目前的现状,哈哈,所以最近一直在看哈工大老师的计算机理论和操作系统。希望能勤能补拙吧。
米哈游面试总体分为四个部分,go
相关,mysql
相关,redis
相关,linux
go
, liées à mysql
, redis
Problèmes liés à linux
. Il existe également des problèmes divergents. liés à la base, y compris, mais sans s'y limiter, les arbres rouge-noir, les arbres binaires, etc.
🎜Structures de données, y compris, mais sans s'y limiter, les listes chaînées, les tableaux, etc. 🎜🎜Certains problèmes liés àtcp
et ip
, tels que la poignée de main à trois voies, la vague à quatre voies, time_wait
, etc. 🎜🎜 Entrez l'adresse dans le navigateur et décrivez le processus en détail. (J’ai l’impression qu’on va me demander ça, hahaha). 🎜🎜🎜En ce qui concerne cette section, mes réponses étaient rares. Je n'ai pu répondre à aucun des algorithmes et des structures de données qui ont été posées lors d'entretiens auparavant, j'en ai donc vérifié certaines et y ai assez bien répondu. 🎜🎜🎜🎜lié à Go🎜🎜🎜GC
, (une question obligatoire pour GO
), stw
timing dans GC
, comment chaque étape est résolue. 🎜🎜gpm
, (une question obligatoire pour GO
), cela doit être parfaitement compris, comment la planification préemptive préempte et comment planifier goroutine
, le problème de quantité de M
et P
. 🎜🎜Comment implémenter avec élégance un pool goroutine
(cette réponse est clairsemée)🎜🎜Parlez de l'évasion de mémoire🎜🎜Gestion de la mémoire (cette réponse est également clairsemée)🎜🎜🎜🎜🎜lié à MySQL🎜🎜 🎜MySQL le verrouillage, la granularité du verrouillage et l'algorithme de verrouillage (verrouillage des espaces, verrouillage des enregistrements, verrouillage des touches), et dans quelles circonstances l'algorithme de verrouillage sera utilisé. La signification générale est que s'il peut être associé avec précision, des verrous d'enregistrement seront utilisés, sinon ils dégénéreront en verrous d'espacement🎜🎜principe d'implémentation de mysql mvvc. 🎜🎜index mysql, timing de création d'index, règles de création. 🎜🎜Règles de sous-base de données et de table MySQL, les avez-vous déjà mises en pratique ? 🎜🎜Type d'index mysql et structure des données d'index 🎜🎜Caractéristiques des transactions mysql et niveau d'isolement. 🎜🎜🎜🎜🎜redis🎜🎜🎜Quels sont les types de données de redis ? Parlons des scénarios d'utilisation. 🎜🎜Il devrait y avoir deux méthodes d'encodage pour redis zset. Configurées dans le fichier de configuration, les 128 éléments par défaut sont ziplist (table de compression), et s'ils sont supérieurs à 128, c'est la stratégie d'élimination de mémoire de 🎜🎜redis 🎜🎜redis. stratégie de persistance 🎜🎜verrouillage distribué redis🎜🎜Quelles sont les architectures distribuées redis ?🎜🎜S'il existe une liste de classement, utilisez zset pour trier en fonction des points et du temps. Ceux avec les points les plus élevés et ceux avec le temps le plus récent seront classés en premier. . Comment le mettre en œuvre ? 🎜🎜🎜🎜🎜linux🎜🎜🎜Quelles commandes connaissez-vous 🎜🎜Si le trafic en ligne augmente fortement et que tout va en amont, comment puis-je le résoudre ? 🎜🎜Comment trouver les 10 adresses IP les plus demandées dans le journal d'accès nginx🎜🎜🎜🎜🎜Résumé🎜🎜Après l'entretien, je demande généralement à l'intervieweur, sur la base de cet entretien, ce qui est bien dans ma technologie, les suggestions ou les opinions de l'intervieweur ? La réponse que j'ai reçue a été : la base informatique est relativement faible, mais la capacité commerciale est très forte. C'est aussi ma situation actuelle, haha, j'ai donc récemment lu la théorie informatique et les systèmes d'exploitation enseignés par des professeurs du Harbin Institute of Technology. J'espère que mon travail acharné pourra compenser mes lacunes. 🎜go
, liées à mysql
, redis code>Connexe, <code>linux
Connexe. 🎜🎜🎜🎜go Related🎜🎜🎜J'ai été confus par la première question. Le code est le suivant : 🎜🎜...m := make(map[int]int, 10)for i := 1; i<= 10; i++ { m[i] = i}for k, v := range(m) { go func() { fmt.Println("k ->", k, "v ->", v) }()}...🎜Demandez ce qui va se passer, pourquoi et comment le résoudre. N'utilisez simplement pas de fermetures directement pour utiliser des variables externes, cela peut être résolu en passant des paramètres. 🎜
Il y en a d'autres que j'ai oubliés.
est presque comme Baidu.
est presque le même que Baidu.
À peu près la même chose, j'ai donc demandé comment vérifier l'identifiant du processus en fonction du nom du processus
Selon les commentaires de l'interview, MiHoYo a donné une mauvaise base Go. la capacité commerciale est forte. C'est peut-être la caractéristique de l'externalisation d'avant.
La deuxième face de MiHoYo pose principalement des questions sur les affaires et les algorithmes, et elle se compose principalement de trois parties.
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!