Didi CTO five rounds of interview is really exciting, before I saw a lot of difficulties, I felt lucky, although the difficulty of the interview is quite big, but the interviewers are good. And immediately after the interview results, very exciting!
This information mainly includes Java foundation, data structure, JVM, multithreading and so on. Due to the limited space, only a small part of the interview questions are shown below. If you need a complete version, you can pay attention to me for free.
On November 5 at 1:00 p.m
Introduce yourself + Introduce the project
Difficulties and solutions in the project
Java thread state and transitions
The way Java creates threads
What are the ways to create a thread pool
Say as much as you can about the classes under the JUC package
ReentranLock vs. sychronized
Volitile memory semantics, how to implement the underlying
Explain happens-before, what the rules are
CurrentHashMap source
MySQL index and differences
Algorithm: Print the matrix clockwise
November 6, 1:00 PM, second surface, deep digging project (45min)
Introduce the project and difficulties in the project (15min)
How is MySQL optimized and how much data is there
The difference between an inverted index and a straight index
How ElasticSearch works (inverted index +TF/IDF)
Have you used Zookeeper
What scenario is Zookeeper used in
In addition to ZAB, several distributed consistency protocols (Paxos, Raft)
Several rejection strategies of thread pools and their application scenarios
What are the big data frameworks
Lsm-tree applies to those scenarios, advantages and disadvantages
Where do you want to work? Big data or development
SQL > select top 5 students and their grades from each class
November 7th 3:00 PM three interviews, no questions about technology, talk about life (40 minutes)
What do you know about Didi and our technology stack
Top3 companies in your mind
What direction do you want to work in? Big data or development
There are still a few questions I can’t remember
November 8th 3:00 PM four
- Self introduction, project questions
- Java collection classes, ArrayList and LinkedList; HashMap, why expansion is a power of 2; How do I use it if I want to be thread safe
- What classes do you know about synchronized and JDK locks? CAS principle, ABA problem; Lock upgrade process to talk about; Volatile, why can’t atomicity be guaranteed
- The JVM memory model, what are the areas of the new generation, and what are their roles? How to determine whether an object can be reclaimed (1 reference counting 2 Reacability analysis)
- JVM common garbage collection algorithm, talk about CMS principle
- Redis commonly used data structures; Ordered set bottom implementation; How to find the ranking at the bottom; How to use Redis to implement distributed locks, possible problems and solutions
- Hand tear a binary search
Five meetings at 3:00 p.m. on November 9
- Self introduction, project questions
- Chat network, TCP3 handshake process, whether the third time can carry data, how to avoid SYN attacks (syncookies); TCP wave four times to say why wait 2MSL, second and third wave can be combined (yes).
- Operating system, the difference between process, thread and coroutine; What happens if you create a lot of threads; What are the methods of interprocess communication
- MySQL > select * from B+ tree; select * from B+ tree; The difference between clustered index and non-clustered index; How to do index optimization at ordinary times, the most left matching principle; 12. Your strengths, your weaknesses (The interviewer said we have the same weaknesses)
13. The last technical book you read, I mentioned “The Art of Concurrent Programming in Java” three times. The interviewer asked me to detail what each chapter was about
What do you think of the Internet industry
15. What would you do if you got a “C” for your performance?
Conclusion:
I wish you all can harvest the desired offer.
The following is only a small part of the interview questions, if you need a complete version of the friend can follow me for free [free]