Five years of development, mastering seven knowledge points of multithreading, JVM, design patterns, Redis, etc., seven-sided Ali, graded P7

Preface

The overall environment this year is very poor. The phenomenon of layoffs by Internet companies is more serious than in previous years, but this year is just the time when my first "Five-Year Plan" expires, so I can't delay anything, so I prepared to change jobs early. It started after the epidemic improved. However, I have to say that this interview with Ali was really too difficult for me. It can be said that it was a battle with the interviewer for 7 rounds, but fortunately, I gave the offer in the end.

My personal situation is 5 years of back-end experience in Java, and Ali graded P7. The following is my interview experience sharing, hoping to bring some different inspiration and help.

"Java Post" with 5 years of experience, 7 faces of Ali, "Five Challenges and Six Generals" won P7

 

I "fight" with the interviewer of Ali for 7 rounds and win

first round:

The first round of interviews is a phone interview, mainly based on basic knowledge, about 2 hours before and after. At this stage, I am quite nervous.

  • First introduce yourself, including daily work
  • Multithreading, ThreadLocal, asked how the parent and child threads share data interitableThreadLocals
  • The difference between Lock and Sync
  • AQS principle (source code of execution process, details of entering and leaving the team, details of source code)
  • What is the source code level of the difference between CountDownLatch and CyclicBarrier
  • volatile from instruction reordering, memory barrier
  • Database, MySQL index, execution plan, count1* difference, examples to optimize the relationship between sql, MVCC and transaction isolation level, gap lock, row lock
  • JVM tuning (what are the root nodes in the reachability analysis algorithm, the difference between cms and G1, how to tune GC, how to check the high CPU, high memory, and escape analysis)
  • How much redis data structure, jump table, redis qps can be, how to know, the difference between sentinel and cluster and their respective applicable scenarios, the redis cluster cluster synchronization process, why redis single thread is fast, how big the key is, the cause and consequence of hot key, and How to solve it, what should I do if local cache needs high timeliness?
  • The role of spring, how to solve the spring cycle dependency (tell the details of the three-level cache source code), the principle of spring aop (dynamic proxy), the spring bean life cycle (the source code details, and the design ideas of each location, what can be extended)
  • Source code of dubbo service exposure and reference process, load balancing strategy, fault tolerance mechanism
  • Problems encountered in the project.
  • Why change jobs? If you pass, you will directly say that there are written test questions and confirm the written test time with you.

second round:

The second round is a written test, with a total of two questions, the first is writing code, and the second is writing technical solutions.

  • It is mainly based on query, and examines the details of lock granularity and time granularity. (Details omitted)

The third round:

The third round is an on-site interview. This round of interviews focuses on solutions and takes about 1 hour and 20 minutes.

  • Cache penetration, let me design a solution to prevent cache penetration. The simplest thing is to store the null value, but I will definitely study it deeply. You can combine the bloom filter to design a distributed system, and it will ask about the traffic distribution to specific filtering. How to call the server service method, such as the consistent hash algorithm? For example, dubbo direct connection, etc. will be asked while talking about details.
  • Is there any current limitation? Design a minimum invasive current limitation service.
  • For the problems encountered in the project, it is best to say that the framework itself is a problem, which can reflect personal ability and avoid the problem being too low-level to be low by the interviewer. A dubbo bug was discovered just before, so this question should be answered well.
  • Why do I change jobs? I will ask every round. I have to think about it.

Fourth round:

Cross-face, project-oriented, the time is about 40 minutes, and there is not much content to ask. At this stage, my personal state is relatively relaxed, and the way I talk to the interviewer is natural.

  • Introduce the most familiar projects, whether there are any optimization points in the business; the gap and advantages with other companies in the same industry (estimated to be the standard question of P7, in short, I did not answer very well)
  • Dubbo service call process
  • The difference between NIO and BIO, what problem does NIO solve, Netty thread model (source code torture).
  • MQ related

Fifth round:

This round of interviews really made me more embarrassed. The interviewers would ask for specific values ​​whenever they asked them, and the state became nervous again, like walking on thin ice.

  • Project Introduction
  • I heard that current limiting and current limiting standards have been made (the number of concurrency? qps? The relationship between the number of concurrency and qps? Five current limiting schemes and corresponding algorithm principles have been mentioned)
  • How does dubbo call end generate corresponding services in jvm? Dubbo server and caller timeout settings and differences, dubbo long connection.
  • The maximum concurrent number of mysql row locks? (The spike project pointed out)
  • Designing the spike system, the asynchronous way I said, I would ask how to optimize it? Changed to a synchronous way. What is the difference between asynchronous and synchronous? Then I also asked Ali
  • What are the technical difficulties encountered? How to deal with it? Did you refer to other major manufacturers? What are the plans of other major manufacturers? Have you paid attention to the latest technology from Ali?
  • The spike system just now involves the update of multiple database tables. How to solve distributed transactions? What I said is that the messages are eventually consistent and asynchronous? Is there a better solution? Synchronous TCC mode, the principle of TCC mode? (The concrete realization of three stages)

Sixth round:

The director’s interview is mainly about self-introduction and project introduction. The way of chatting is more comfortable. Most of them are macro-control of your overall values ​​(such as motivation, responsibility, mentality, passion for work, etc.). It ends in about 15 minutes. .

  • Talked about my project
  • What are the main architectures used?
  • Tell me about the more complex business logic?
  • ...

Seventh round:

In HR, Ali’s HR is very different. Both the temperament and the conversation are admirable. The questions asked are also very targeted. Finally, I told me that I would call back the results.

  • Self introduction
  • How to learn new technology?
  • How does the team work?
  • How to solve a difficult problem? How to break through?
  • career planning
  • ......

The full version of Ali's 7-round interview experience (including answers and analysis):

Due to the limited length of the article, the full version of the interview questions and answer analysis are organized in a PDF file. If you need the full version, you can directly "see the picture below" to get it for free.

 

Too difficult for me, Ali interviewed for 7 rounds (5 years of experience, won the P7 offer)

 

Too difficult for me, Ali interviewed for 7 rounds (5 years of experience, won the P7 offer)

 

How much sweat did I shed before interviewing Ali?

1. Combing knowledge

In general interviews, you will be asked about JVM principles, multithreading, data structures and algorithms, high concurrency, design patterns, etc. These are the knowledge structures of an ordinary Java developer, so Ali P7 must have more Knowledge tree requires a more comprehensive knowledge system, so a systematic review of knowledge is needed.

For benchmarking P7, the knowledge system I sorted out is as follows:

  • Essential skills for foundation building: concurrent programming, JVM, network programming and efficient IO, Mysql, Tomcat
  • Design ideas and open source framework: SSM (Spring+SpringMVC+MyBatis)
  • Performance linear improvement architecture technology: ZK, Nginx, RabbitMQ, RocketMQ, Kafka, elastic
  • Efficient storage allows project performance to take off: Redis, MongoDB, MySQL, Mycat
  • Distributed extension to microservice architecture: SpringBoot, SpringCloud, SpringCloud Alibaba, Docker, K8S

 

 

 

 

2. Review knowledge

To go to the interview after working for so long is definitely to take out my knowledge reserve again, to review all the knowledge points in place, you need to go through various methods to choose the one you are most used to. It is okay to read e-books or watch videos, but remember to make your own study notes, which can serve as a summary, and it will be particularly clear when you go to review.

E-book:

 

Study notes:

 

Learning video:

 

3. Brush the interview questions

After working for 5 years, although I know what technologies are popular now, I really don't know what the big Internet companies will interview. Therefore, it is necessary to brush the interview questions before the interview. I have compiled the interview questions for the first-line Internet for nearly three years, and the content is really quite a lot.

 

 

Planning and mentality after getting the offer

After graduating, my first 5 years went according to plan, so after getting the Ali offer, I also have clear goals for the next 5 years. The next time is to form the stage of thinking methodology and knowledge system. At the same time, we must cultivate our own team assistance and management capabilities, improve our own vision, and have a longer-term development.

As for the mentality, keep your feet on the ground, not arrogant or discouraged.

to sum up

Finally, I hope that everyone can have their own clear development path. I hope that everyone can successfully win the offer and enter the ideal company.

In the above article, all the documents can be shared with everyone for free. Friends who need it, like my article, follow me, and then "see the picture below" to get the package collection method~

Like+Follow, "See the picture below" to get it for free~

 

Guess you like

Origin blog.csdn.net/GYHYCX/article/details/108986621