The five rounds of Didi interviews are really exciting, and the Java senior engineer has experienced one, two, three, four and five faces (have got the offer)

The five rounds of Didi interviews are really exciting. I have seen a lot of interviews before. It is very difficult. I feel lucky. Although the interview is difficult, the interviewers are not bad. And the results will be available immediately after the interview, which is very exciting!

This article is shared with friends who need to interview and brush up questions, and I wish you all the best to get the offer you want. This information mainly includes Java basics, data structures, jvm, multithreading, etc. Due to limited space, only a small part is shown below. Interview questions, friends who need the full version can click a link to jump to receive, link: click here to download for free, get code: CSDN

Insert picture description here

October 9th at 1:00 pm

  • Self introduction + introduction project

  • Difficulties and solutions in the project

  • Java thread state and transition

  • How Java creates threads

  • What are the ways to create a thread pool

  • What can be said about the classes under the JUC package

  • The difference between ReentranLock and sychronized

  • The memory semantics of volitile, how to implement the bottom layer

  • Explain what happens-before, what are the rules

  • CurrentHashMap source code

  • MySQL index and difference

  • Algorithm problem: print matrix clockwise

At 1:00 pm on October 10, the two sides, the deep excavation project is the main (45min)

  • Introduce the project, the difficulties in the project (15min)

  • How is MySQL optimized and how much data is there

  • The difference between inverted index and forward index

  • Principle of ElasticSearch (inverted index + TF/IDF)

  • Have you used Zookeeper, introduce it

  • What scenarios is Zookeeper generally used in?

  • In addition to the ZAB protocol, several distributed consensus protocols (Paxos, Raft) are introduced

  • Several rejection strategies of thread pools and their application scenarios

  • What are the big data frameworks

  • LSM-tree application in those scenarios, advantages and disadvantages

  • Intent to work in the direction? Big data or development

  • Write SQL: query the top five students in each class and their results

On October 12th at 3:00 pm on three sides, the whole process did not ask about technology, talk about life (40min)

  • What do you know about Didi? Do you know our technology stack?

  • Top3 company in your mind (send proposition)

  • Your intended work direction? Big data or development

  • I don’t remember a few more questions~

All around at 3:00 pm on October 14

  • Self-introduction, project questions

  • Which Java collection classes are commonly used, the difference between ArrayList and LinkedList; the underlying implementation of HashMap, why the expansion is a power of 2; how to use it if you want thread safety

  • Under the JUC package, understand which classes are the locks provided by synchronized and JDK; CAS principles, ABA issues; talk about the lock upgrade process; talk about volatile, why can’t guarantee atomicity

  • JVM memory model, what areas are there in the new generation, and what are their functions; how to judge whether an object can be recycled (1 reference count 2 reachability analysis)

  • JVM commonly used garbage collection algorithm, talk about the principle of CMS

  • Redis commonly used data structure; the underlying implementation of ordered collection; how to find and rank at the bottom; how to use Redis to implement distributed locks, possible problems and solutions

  • Hand tear a binary search

October 16th at 3:00 p.m. Five sides

  • Self-introduction, project questions

  • Talking about the network, the TCP 3-way handshake process, whether the third time can carry data, how to avoid SYN attacks (syncookies); TCP waved four times, why wait for 2MSL, whether the second and third wave can be combined (can ).

  • The difference between operating system, process, thread and coroutine; what will be the problem if you create a lot of threads;
    how to implement the MySQL index for inter-process communication , why use B+ tree instead of B-tree binary tree; clustered index and non-clustered index The difference; how to do index optimization usually, the principle of leftmost matching;

  • Your strengths, your weaknesses (the interviewer said our weaknesses are the same)

  • In the technical books you recently read, I mentioned "The Art of Concurrent Programming in Java" and read it three times. The interviewer asked me to detail what each chapter said.

  • What do you think of the internet industry

  • What would you do if your performance was beaten C (this is a big pit~)

Guess you like

Origin blog.csdn.net/qq_41770757/article/details/110353398