Heim >Backend-Entwicklung >Golang >Frisch veröffentlichte Go-Interviewfragen (Baidu und MiHoYo)
Beide Unternehmen nutzten damals keine Aufzeichnungen, um sie zu überprüfen. go
技术岗位,一家百度,一家米哈游,面试的情况也不太乐观,现在分享一下面试中问的问题吧。
两家都是采用线上面试的,当时没有录音,现在全靠自己的回忆来复盘一下了。
百度的面试步骤分为计算机基础、go
相关、mysql
相关、redis
相关、linux
相关问题。还有一些发散性的问题。
tcp
、ip
相关的一些问题,比如三次握手、四次挥手、time_wait
等等。这一块的话,我回答的是稀碎,算法和数据结构我一个都没答上来,后面两个因为之前面试问到过,所以查过一些,回答的还算可以。
GC
,(面GO
必问题),GC
中stw
时机,各个阶段是如何解决的。gpm
,(面GO
必问题),这个必须要完全理解,抢占式调度是如何抢占的,怎么调度goroutine
的,M
和P
的数量问题。goroutine
池(这个回答的稀碎)我面试结束后,一般都会问面试官,根据这次面试,针对我的技术上面,有什么好的建议或者意见,这位面试官给我的回答是:计算机基础比较薄弱,但是业务能力很强。这也是我目前的现状,哈哈,所以最近一直在看哈工大老师的计算机理论和操作系统。希望能勤能补拙吧。
米哈游面试总体分为四个部分,go
相关,mysql
相关,redis
相关,linux
go
-bezogen, mysql
-bezogen, redis
unterteilt > Verwandte, linux
-bezogene Probleme. Es gibt auch einige abweichende Probleme. Algorithmen, einschließlich, aber nicht beschränkt auf Rot-Schwarz-Bäume, Binärbäume usw.
🎜Datenstrukturen, einschließlich, aber nicht beschränkt auf verknüpfte Listen, Arrays usw. 🎜🎜Einige Probleme im Zusammenhang mittcp
und ip
, wie z. B. Drei-Wege-Handshake, Vier-Wege-Wave, time_wait
usw. 🎜🎜 Geben Sie die Adresse in den Browser ein und beschreiben Sie den Vorgang ausführlich. (Ich habe das Gefühl, dass ich normalerweise so gefragt werde, hahaha). 🎜🎜🎜Was diesen Abschnitt betrifft, konnte ich auf keinen der Algorithmen und Datenstrukturen antworten, die zuvor in Interviews gestellt wurden, also habe ich einige überprüft und sie ziemlich gut beantwortet. 🎜🎜🎜🎜go bezogen🎜🎜🎜GC
, (eine erforderliche Frage für GO
), stw
Timing in GC
, wie jede Stufe gelöst wird. 🎜🎜gpm
, (eine erforderliche Frage für GO
), dies muss vollständig verstanden werden, wie präventive Planung vorgeht und wie man goroutine
plant, das Mengenproblem von M
und P
. 🎜🎜So implementieren Sie elegant einen goroutine
-Pool (diese Antwort ist spärlich)🎜🎜Sprechen Sie über Speicherflucht🎜🎜Speicherverwaltung (diese Antwort ist ebenfalls spärlich)🎜🎜🎜🎜🎜MySQL-bezogen🎜🎜 🎜MySQL Sperre, Sperrgranularität und Sperralgorithmus (Lückensperre, Datensatzsperre, Tastensperre) und unter welchen Umständen der Sperralgorithmus verwendet wird. Die allgemeine Bedeutung besteht darin, dass Datensatzsperren verwendet werden, wenn eine genaue Übereinstimmung möglich ist, andernfalls werden Lückensperren degeneriert. Prinzip der MySQL-MVVC-Implementierung. 🎜🎜MySQL-Index, Zeitpunkt der Indexerstellung, Erstellungsregeln. 🎜🎜MySQL-Subdatenbank- und Tabellenregeln, haben Sie sie jemals geübt? 🎜🎜MySQL-Indextyp und Indexdatenstruktur 🎜🎜MySQL-Transaktionsmerkmale und Isolationsstufe. 🎜🎜🎜🎜🎜redis🎜🎜🎜Was sind die Datentypen von Redis? 🎜🎜In der Konfigurationsdatei sollten zwei Codierungsmethoden für Redis konfiguriert sein. Die standardmäßigen 128 Elemente sind Ziplist (Komprimierungstabelle), und wenn sie größer als 128 sind, handelt es sich um die Speichereliminierungsstrategie von 🎜🎜Redis Persistenzstrategie 🎜🎜Redis Distributed Lock🎜🎜Was sind die verteilten Redis-Architekturen?🎜🎜Wenn eine Rangliste vorhanden ist, verwenden Sie zset, um nach Punkten und Zeit zu sortieren. Diejenigen mit höheren Punkten und diejenigen mit der neuesten Zeit werden zuerst eingestuft . Wie wird es umgesetzt? 🎜🎜🎜🎜🎜linux🎜🎜🎜Welche Befehle kennen Sie? 🎜🎜Wenn der Online-Verkehr stark ansteigt und alles an einen Upstream geht, wie kann ich das Problem beheben? 🎜🎜So finden Sie die 10 am häufigsten angeforderten IPs im Nginx-Zugriffsprotokoll🎜🎜🎜🎜🎜Zusammenfassung🎜🎜Nach dem Interview frage ich den Interviewer normalerweise, was an meiner Technologie gut ist. Vorschläge oder Meinungen des Interviewers Die Antwort für mich war: Die Computerbasis ist relativ schwach, aber die Geschäftsfähigkeit ist sehr stark. Das ist auch meine aktuelle Situation, haha, also habe ich kürzlich Computertheorie und Betriebssysteme gelesen, die von Lehrern des Harbin Institute of Technology unterrichtet wurden. Ich hoffe, dass meine harte Arbeit meine Mängel ausgleichen kann. 🎜go
bezogen, mysql
bezogen, redis code>Verwandt, <code>linux
Verwandt. 🎜🎜🎜🎜go related🎜🎜🎜Die erste Frage verwirrte mich. Der Code lautet wie folgt: 🎜🎜...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) }()}...🎜Fragen Sie, was passieren wird, warum und wie Sie es lösen können. Verwenden Sie Verschlüsse nur nicht direkt, um externe Variablen zu verwenden. Dies kann durch Übergeben von Parametern gelöst werden. 🎜
Es gibt noch andere, die ich vergessen habe.
ist fast wie Baidu.
ist fast dasselbe wie Baidu.
So ziemlich das Gleiche, also habe ich gefragt, wie man die ID des Prozesses anhand des Prozessnamens überprüfen kann
Laut dem Interview-Feedback gab MiHoYo eine schlechte Go-Grundlage Die Geschäftsfähigkeit ist stark. Vielleicht ist dies das Merkmal von Outsourcing früher.
Die zweite Seite von MiHoYo stellt hauptsächlich Fragen zu Geschäft und Algorithmus und besteht hauptsächlich aus drei Teilen.
Das obige ist der detaillierte Inhalt vonFrisch veröffentlichte Go-Interviewfragen (Baidu und MiHoYo). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!