Heim  >  Artikel  >  Sehen Sie, wie dieses Mädchen ein Angebot von Meituan bekam?

Sehen Sie, wie dieses Mädchen ein Angebot von Meituan bekam?

Java学习指南
Java学习指南nach vorne
2023-07-26 16:55:08939Durchsuche

Meituan, ich habe meinen Lebenslauf schon einmal auf Lagou.com eingereicht, aber mein Lebenslauf hat die Löschung nicht bestanden. Später habe ich meinen Vorgesetzten gebeten, mir bei der Änderung meines Lebenslaufs zu helfen, und ihn erneut bei einer anderen Abteilung eingereicht , und bekam ein Interview. Am 23. Oktober rief mich die Personalabteilung mittags an und vereinbarte um 16:30 Uhr einen Termin für ein Vorstellungsgespräch. Er sagte, er würde online Code schreiben und bat mich, die Netzwerkumgebung vorzubereiten. Deshalb habe ich um 17:30 Uhr immer noch nicht angerufen und wurde entlassen. Nachdem wir erneut mit der Personalabteilung kommuniziert hatten, beschlossen wir, uns am nächsten Montagnachmittag erneut zu treffen. Allerdings scheint die Kommunikation mit der Personalabteilung zur Vereinbarung eines Termins in Meituan keinen Sinn zu haben.

Ein Interview (20 Minuten)

Um 19 Uhr abends, weil ich an das Interview am kommenden Montag dachte, wollte ich gerade Badminton spielen, als der Anruf aus Peking kam. Der Interviewer entschuldigte sich auf verschiedene Weise und sagte, dass sich das Treffen verzögert habe.

1. Selbstvorstellung

Ich habe es schon oft gesagt und es ist sehr einfach, die wichtigsten Punkte aufzugreifen.

2. Fragen Sie mich, ob der Datenstrukturalgorithmus gut ist

Er ist ziemlich gut (eigentlich bin ich immer noch ein bisschen schuldig, aber ich habe in letzter Zeit viele Fragen beantwortet und kann nur mutig genug sein, so zu tun, als wäre ich fett ).

3. Finden Sie den dritten Halbierungspunkt der einfach verknüpften Liste.

Verwenden Sie die langsamen und schnellen Zeiger, um einen Schritt und drei Schritte auszuführen. Wenn eine Schleife vorhanden ist, bestimmen Sie zunächst, wo sich die Schleife befindet, suchen Sie den letzten Knoten und verwenden Sie dann den vorherigen schleifenfreien Ansatz.

4. Lassen Sie uns über die Projektstruktur sprechen

Ich habe mich auf MVC konzentriert.

5. Sprechen Sie über die Designmuster, mit denen Sie vertraut sind.

Ich habe mich auf Singletons, Factory-Methoden und Agenten konzentriert.

6. Hast du einen Server konfiguriert oder so?

Ich weiß wirklich nichts davon, ich habe noch nie davon gehört, also kann ich ehrlich gesagt nur nein sagen, schließlich hat es keinen Sinn, darüber zu reden.

Es war ziemlich eilig, ich schätze, der Interviewer hatte gerade das Meeting beendet und noch nichts gegessen. Er sagte mir, ich solle warten und vielleicht einen anderen Kollegen finden, der mich interviewen könnte, und er würde mir das Ergebnis vielleicht direkt mitteilen. Aufgrund der Stimme und des Tons des Interviewers kam ich zu dem Schluss, dass er der Chef der Abteilung sein musste, und stellte mir weitere Fragen zum Thema Design. Später teilte mir die Personalabteilung mit, dass er der Chef der Abteilung sei, in die ich gehen wollte. Ha ha.

Zwei Interviews (60 Minuten)

Nach dem ersten Interview wollte ich gerade Badminton spielen, als der Anruf aus Peking erneut kam. (Es ist mir bestimmt, dass ich diesen Freitag nicht an Teamaktivitäten teilnehmen kann!)

Zweites Interview: Im Vergleich zum ersten Interview klang die Stimme des Interviewers im zweiten Interview wie jemand, der sich mit technischer Entwicklung beschäftigt -stündiges rein technisches Telefoninterview! Sehr umfassend!

1. Spring: Haben Sie jemals Spring, Spring IOC, AOP-Mechanismus und -Implementierung, Spring MVC verwendet? Eigentlich möchte ich nicht nach den Details von Spring gefragt werden, ich habe das Framework noch nicht überprüft und kann mich nicht mehr gut daran erinnern. Also sagte ich dem Interviewer, dass ich einige der wichtigeren Mechanismen im Frühjahr recht gut verstanden habe, und erläuterte dann anhand eines praktischen Beispiels mein Verständnis von IOC und AOP. Er hörte zu und sagte, dass er Recht hatte und gut verstanden hatte (eine seltene Begegnung). ). Ich bin so froh, einen Interviewer zu haben, der während des Interviews Feedback geben kann.


Tatsächlich habe ich Spring MVC verwendet. Ich habe dem Interviewer von dem in meinem Projekt verwendeten Servlet, dem von JSP und Javabean implementierten MVC sowie den Verantwortlichkeiten jedes MVC-Moduls und der Verbindung jedes Moduls erzählt. , und schließlich fügte ich hinzu, dass ich denke, dass die Idee von SpringMVC tatsächlich dieselbe ist (er hatte recht, hey, es ist großartig, Feedback zu haben).


2. Multithreading: Wie erreicht man Thread-Sicherheit, was sind die Unterschiede zwischen verschiedenen Implementierungsmethoden, die Verwendung flüchtiger Schlüsselwörter, das Verständnis von Wiedereintrittssperren, wird eine Wiedereintrittssperre synchronisiert


Hier werde ich hauptsächlich über das Synchronized-Schlüsselwort sowie einige Sperren im Concurrent-Paket sowie deren jeweilige Vor- und Nachteile und Unterschiede sprechen. Ich habe hauptsächlich über das Schlüsselwort volatile aus den drei Aspekten Sichtbarkeit, Atomizität und Verbot der Neuordnung von JVM-Befehlen gesprochen. Ich habe auch über das Schlüsselwort volatile gesprochen, das ich bei der Doppelprüfung im Multithread-Singleton-Modus verwendet habe, um die Optimierung der Neuordnung von JVM-Befehlen zu verhindern.


3. Sammlung: Die zugrunde liegende Implementierung von HashMap, wie man die HashMap-Thread-Sicherheit implementiert


Ich habe über die zugrunde liegende Implementierung von HashMap als Array plus eine einfach verknüpfte Liste, knoteninterne Klassen und den Add-Prozess gesprochen , Hash-Konfliktlösung und -erweiterung, drei Sammlungsansichten. Bei der Implementierungsmethode der HashMap-Thread-Sicherheit geht es hauptsächlich um die statische Methode SynchronizedMap in HashTable, ConcurrentHashMap und Collections, die HashMap kapseln kann. Und der Unterschied und die Effizienzleistung dieser drei Methoden.


4. JVM-Speicherverwaltung, GC-Algorithmus, Garbage Collector und Klassenladen in HotSpot


Der JVM-Speicher ist hauptsächlich in fünf Bereiche unterteilt, die von Threads gemeinsam genutzt werden und die ausschließlich für Threads gelten in jedem Bereich. GC: So bestimmen Sie, welche Objekte GC, GC-Methoden, Minor GC und Full GC sein müssen. Der HotSpot-GC-Algorithmus und 7 Arten von Garbage-Collection-Zeiträumen beziehen sich hauptsächlich auf CMS und G1-Collector. Klassenladen: Der Prozess des Klassenladens, Bootstrap-Klassenlader-ExtClassloader-AppClassloader, Delegierungsmechanismus der übergeordneten Klasse.


5. Der Unterschied zwischen Prozessen und Threads


Beantwortet aus vier Aspekten: Planung, Parallelität, eigene Ressourcen und System-Overhead.


6. Hat HTTP einen Status?


Wie löst man HTTP-Statuslosigkeit? Es gibt vier Methoden: URL-Umschreibung und Ausblenden von Formularen . Domäne, Cookie, Sitzung.


7. Java IO, NIO, ist asynchrones IO in Java implementiert?


Java IO implementiert synchrones Blockieren, wie erreicht es synchrones Blockieren. Als Beispiel habe ich die Methode read() genommen. NIO implementiert synchrones Nichtblockieren. Ich habe ausführlich über die Abfrage der select()-Methode in Selector gesprochen, um zu erklären, wie sie Multiplex-E/A implementiert. Vergleichen Sie dann ihre Effizienz. Der Interviewer hat wahrscheinlich gesehen, dass ich viel über diesen Bereich weiß, also fragte er mich weiterhin, ob asynchrone E/A in Java implementiert sei Tatsächlich wusste ich nicht viel darüber, also fragte ich den Interviewer, wie ich das asynchrone IO-Modell in Unix verstehe, und sagte dann, dass ich wirklich nicht wüsste, ob es in Java existiert. (Er hat tatsächlich gelacht! Er sagte, dass Ihr Verständnis richtig ist. Es spielt keine Rolle, ob Java darin ist!


8. Was ist das Prinzip von Ajax? Implementierung


Ich kenne nur das Frontend. Ich habe einfach das JQuery-Framework verwendet. Ich denke, es ist asynchrones JS und XML. Tatsächlich verstehe ich das Prinzip der Ajax-Implementierung nicht. Ich habe gerade kurz darüber gesprochen, dass die Ajax-Engine auf dem Client ausgeführt wird.


9. Lassen Sie mich einen Thread-Pool entwerfen


Weil in meinem Lebenslauf steht, dass ich ein gutes Verständnis für Multithreading und Parallelität habe. Deshalb stellt er in diesem Bereich immer Fragen. Da ich den Quellcode von ThreadPoolExecutor schon einmal gesehen habe, habe ich über dieses Problem basierend auf der Designidee dieser Klasse nachgedacht und ausführlich über den Kernpool gesprochen, das Factory-Methodenmuster, das zum Erstellen von Threads verwendet werden kann. Thread-Pool-Status, Blockierungswarteschlange, Ablehnungsstrategien in diesen Aspekten. Das Design ist recht gründlich.


10. Lassen Sie uns über verschiedene Entwurfsmuster sprechen, wo sie verwendet werden und warum sie verwendet werden.


Einzelfallmodus, getRuntime() im JDK; Factory-Methodenmodus, ThreadPoolExcutor verwendet ThreadFactory; Observer-Modus: Observable und Observer im Paket java.util. Abschließend habe ich hauptsächlich über die Verwendungsszenarien des Factory-Methodenmusters gesprochen.


11. MySQL-Optimierung und Indeximplementierung


Ich spreche unter zwei Aspekten darüber: Optimierung des Datenbankdesigns und Abfrageoptimierung. Index-B+-Baum-Implementierung, der Unterschied zwischen InnoDB- und MyISAM-Primärschlüssel-Index-Implementierung, einer ist aggregiert und der andere ist nicht aggregiert.


12. Transaktionsisolationsstufen


Vier Isolationsstufen, welche Ausnahmen auftreten können, die Standardstufe in MySQL.


13. Hast du jemals Hibernate, Mybatis, Git verwendet?


Sag mir einfach kurz, was sie tun.


14. Linux


Ich sagte, ich habe das in meinem Grundstudium gelernt, aber ich habe es schon lange nicht mehr benutzt und alle Befehle vergessen. Er sagte, es sei in Ordnung, er werde Sie mit ein paar einfachen Tests testen: cd, ls, dir (wirklich einfach).


15. Algorithmusfrage


Finden Sie die kleinsten 10 Zahlen aus 100.000, Zeitkomplexitätsanalyse (maximaler Heap, Speicher berücksichtigen).


Ermitteln Sie die maximale Summe aufeinanderfolgender Unterarrays aus einem positiven und negativen Array, Zeitkomplexitätsanalyse (dynamische Programmierung).

Wie viele Knoten gibt es auf der i-ten Ebene des vollständigen Binärbaums und wie viele Knoten gibt es? Es gibt einen n-stufigen vollständigen Binärbaum.

Endlich ist es Zeit für mich, Fragen zu stellen:


1. In welcher Abteilung sind Sie (er sagte, es ist die Kernabteilung, Big-Data-Forschung und -Entwicklung).


2. Ich interessiere mich sehr für hohe Parallelität und Lastausgleich, aber ich habe in der Schule nicht diese Umgebung, in der ich sie erleben kann. Was schlagen Sie also vor, dass ich das jetzt lernen kann? dass es nicht leicht zu lernen ist. Ich kann nur einige Theorien und die Blogs anderer Leute lesen und dann kann ich in Zukunft langsam bei der Arbeit lernen.


3. Was genau macht Middleware? (Er sagte fast „Ja“, und dann sagte er, dass unsere Abteilung keine Middleware sei, sondern eine Big-Data-Abteilung. Ich sagte „Ja“. Wissen) .


Am Ende gab es kein Problem, er bat mich, das Telefon offen zu lassen.

Nachdem ich dieses Interview beendet hatte, hatte ich einmal den Verdacht, dass er möglicherweise nicht wusste, dass ich mich für eine Praktikumsstelle bewarb. Es gibt zu viel, um es zusammenzufassen, also lassen Sie uns in der Zusammenfassung gemeinsam darüber sprechen.


Drei Interviews (25 Minuten)

Der Interviewer sagte, dass er aus einer anderen Abteilung käme und ein übergreifendes Interview führen müsse.


1. MySql-Optimierung.


2. Erzählen Sie uns, was das Projekt bewirkt hat, seine Architektur usw.


3. Schreiben Sie Code online auf collabedit. Die Frage ist sehr einfach und entspricht der ursprünglichen Frage zu „The Beauty of Programming“. Geben Sie zwei Zahlen aus, sodass ihre Summe ein gegebener Wert ist. Ich habe es schon einmal gemacht und es schnell geschrieben und ihm dann die Ideen erklärt. Er fragte weiter, was zu tun sei, wenn das Array ungeordnet sei, und es zuerst zu sortieren.


4. Zwei Dateien, jede Datei hat mehrere URLs, finden Sie die gleiche URL in den beiden Dateien (verwenden Sie HashMap)

Diese Seite ist ganz einfach, fügen Sie einfach diejenigen hinzu, die noch nie online interviewt wurden Beim Schreiben von Code habe ich später von Collabedit erfahren. Dieser Online-Editor ist in einem Textdokument geschrieben und kann nicht kompiliert und ausgeführt werden ein Whiteboard. Üben Sie einfach regelmäßig Ihre Hände.


Viertes Interview mit der Personalabteilung (30 Minuten)

Der Interviewer aus dem dritten Interview sagte, dies sei das letzte Interview und sagte, er würde warten, bis die Personalabteilung mich kontaktiert, nachdem ich bestanden habe. Ich hätte nie erwartet, dass das HR-Interview eine halbe Stunde später auch technisch sein würde.

1. Stellen Sie sich vor, wenn Sie von anderen umgeben sind. ! Ich dachte, es wäre ein einfaches HR-Interview, daher drehte sich in der Einleitung alles um meine Persönlichkeit und mein Leben, aber das war nicht der Fall.

2. Fragen Sie nach dem Projekt und stellen Sie sehr detaillierte Fragen zu den technischen Details, zu den aufgetretenen Problemen, wie Sie diese gelöst haben, ob es jemanden gibt, der das Projekt leitet und wie Sie mit anderen kommunizieren.

3. Datenbankoptimierung, was soll ich tun, wenn eine Tabelle in der Datenbank extrem groß ist?

Ich habe über die Datenbankoptimierung gesprochen, über die ich schon oft gesprochen habe: Was soll ich tun, wenn eine Tabelle extrem groß ist? Teilen Sie eine große Tabelle in kleine Tabellen auf. So erreichen Sie dies: Verwenden Sie eine Partitionstabelle.

4. Fragen Sie Doktoranden nach ihren wissenschaftlichen Forschungsthemen, warum sie dieses Thema gewählt haben, welche Artikel sie gelesen haben (fragen Sie mich sogar, in welchen Zeitschriften diese Artikel veröffentlicht wurden und von welcher Schule die Autoren stammen) und warum sie sich für dieses Thema entschieden haben Algorithmus und wie optimiert, wie vergleichen sich die experimentellen Ergebnisse mit anderen und warum sind sie besser als die Algorithmen anderer Leute? (Ich stellte immer wieder Fragen. Ich vermute, er verstand die von mir erwähnten Fachbegriffe nicht ganz. Er hat einfach … Ich wollte beurteilen, ob es von mir gemacht wurde.

Die Festlegung der Praktikumszeit macht mich wirklich unter Druck. Einige technische Details sind sehr zeitaufwändig nicht zusammengefasst, also kann ich nur darüber nachdenken, hehe. Was die wissenschaftliche Forschung angeht, ist es nicht schlecht. Ich erinnere mich noch gut an die Implementierung, Verbesserung und den Vergleich einiger Algorithmen.

Ich möchte nicht mehr nach einem Praktikum suchen. Ich muss sagen, dass das Praktikumsgespräch in dieser Abteilung so großartig ist Auch sehr gut und ich bin sehr zufrieden, deshalb möchte ich nicht weiter suchen. Bisher wurde die Überprüfung der Java-Grundlagen, Datenbanken, Computernetzwerke und Betriebssysteme abgeschlossen. Frischen Sie Ihre Fragen nun jeden Tag auf und bleiben Sie dabei. Bereiten Sie sich als nächstes darauf vor, einen Blick auf den Tomcat-Quellcode zu werfen. Wir stehen kurz vor dem Eintritt in eine neue Phase. Dies ist noch nicht das Ende.


Das obige ist der detaillierte Inhalt vonSehen Sie, wie dieses Mädchen ein Angebot von Meituan bekam?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:Java学习指南. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen