preface

Two days ago, I received the internship offer from Alibaba. From the beginning of the interview with senior students to the final offer, I have experienced four technical aspects, one cross face and one HR face. After a long wait and several almost excruciating interviews, I finally got the internship offer.

To introduce myself

I come from a double-non-undergraduate school in southwest China, majoring in Internet of Things Engineering. My major has little to do with Java development, and I only taught some simple programming courses in school. The rest of the programming knowledge was learned and self-taught in the lab in my spare time. Technology is not a big dog, I have done a lot of projects, but most of them are small projects or some interesting small projects, I have not contacted the real sense of big projects. At ordinary times, I like to wander around wechat public number, Jane book, nuggets and other platforms, and take a look at technical articles. I have occasionally written some articles myself. I spent a lot of time in the lab at school, and I like the process of writing codes and solving difficult problems.

Interview preparation

In the long term, I have to get well prepared before preparing for the school. The above is my basic programming skills and understanding of various knowledge points, and the above is to break through the knowledge points I do not know.

I started to make preparations one and a half months before I submitted my resume. First of all, I had to brush Leetcode, the algorithm part is quite important. Besides, Ali also had written test scores, and some pen tests that were not too difficult would be asked during the interview.

Then it is to find a few more interviews, look at the older students at the interview when the interviewer asked what questions, if you can, try to answer again, if you can’t, then go to learn;

However, the online experience may be because everyone’s learning process is not the same, the probability of finding similar experience personal feeling is not too big, I happen to be in the knowledge planet of H university, I looked for H University to do a resume guidance (not advertising, is really thank H University);

Finally, I found a very complete document of Java interview questions and answers to be used as review materials. (Java interview and core knowledge review)

The interview process

First Technical Side (60min)

  1. What kind of thread pool do you use? What are the parameters of a custom thread pool
  2. Talk about the thread pool execution flow
  3. How are the number of core threads, maximum threads, and queue size defined in your project? Why is it defined this way? (This question is a plus for my tutor.)
  4. How to prevent oversold in the project
  5. How are your SQL statements for placing orders written? (Look at optimistic locks in MySQL.)
  6. If some users say that the feedback of the whole system is slow, how do you troubleshoot and solve the problem?
  7. What are the reasons for the slow system response?
  8. Algorithm: Given an unordered array and a target value, find all combinations in which the sum of the two numbers in the array equals the target value, and figure out their time complexity. (A very simple algorithm, leetcode easy difficulty)
  9. Know anything about the JVM memory model? What are threads exclusive and what are threads shared?
  10. Tell me more about the partitions of the Java heap, their scale, and what happens if you scale it up?
  11. Tell me about the JVM’s GC algorithm, why mark-tidy is better, and what problems it solves.
  12. Are you familiar with the Java class loading mechanism? What kinds of loaders are there?
  13. What commands do you need to enter if you want to view GC logs for running services online?
  14. If you know anything about hashmaps, let’s talk about how hashmaps work.
  15. If two objects have the same hashCode, are they necessarily the same object? If two objects are equal, do they have the same hashCode?
  16. How do I resolve hash conflicts?
  17. Is HashMap thread-safe, and how to make HashMap thread-safe?
  18. What database engine does MySQL database have?
  19. What is the data structure of InnoDB index? Explain its principle
  20. Can you give an example of database transaction levels and what problems they solve
  21. What is the default transaction level of MySQL?
  22. How to enable slow query in MySQL?
  23. What modules does Spring contain?
  24. Talk about your understanding of the Spring IOC container and the startup process
  25. Know anything about RPC frameworks or distributed stuff? (This is to test the understanding of new technology and attention to the development of the Internet)
  26. Tell me about a book you’ve read about Java

Second Technical Side (30min)

  1. Tell me about the best project you worked on. Describe the technical difficulties and challenges of your project.
  2. How to solve the problem of overselling and selling less in the mall project?
  3. What is idempotent
  4. How does Redis ensure high availability
  5. You know the Redis sentinel mode?
  6. Do you see any drawbacks with Redis?
  7. How do you stress test? What are the stress test numbers?
  8. What are the parameters of a line city?
  9. What is the difference between the core thread count and the maximum thread count?
  10. What are the common rejection strategies?
  11. This section describes SpringBoot features
  12. What is the singleton pattern
  13. What is hungry and lazy mode
  14. What are the DOS and don ‘ts of slacker mode
  15. Talk about what the volatile keyword does and how it works
  16. Talk about spinlocks and some common spinlocks implementations
  17. Talk about the left outer join of the database
  18. Database index optimization
  19. The data structure of a database index

Third Technical Side (25min)

  1. How to solve the problem of overselling and selling less in the mall project?
  2. What were the problems encountered during the development project?
  3. How to solve the problem when Redis and database synchronization
  4. Let’s talk about thread states in Java
  5. What is the difference between blocking and waiting for a thread
  6. This section describes some Java locking mechanisms
  7. You know which types of locks
  8. Why wait and notify are under the Object class
  9. Distributed, RPC framework
  10. What is the threading model of Redis (NIO)
  11. How does the message queue implemented by Redis ensure that messages are not lost
  12. How is heap sort implemented
  13. How does TCP/IP ensure the reliable transmission of messages
  14. What is TCP/IP optimized for (congestion control and traffic control)

Fourth Technical Side (15min)

  1. What is the content of the article you submitted
  2. Introduce message queues
  3. How is overselling solved?
  4. How is the ordering process designed?
  5. Let me introduce the snowflake algorithm
  6. How do you understand distributed?
  7. How do distributed groups communicate with each other?
  8. How does the producer-consumer model work?
  9. Java in the way to create threads
  10. Code scenario: Given a string, count the number of occurrences of each uppercase letter, sort by the number of occurrences, output the letter and the number of occurrences from smallest to largest

Cross-interview (30 minutes)

  1. What might have been your better grades in school and why
  2. How long have you been learning Java
  3. How did you learn Java?
  4. What open source frameworks have you read?
  5. What do you think of open source framework source code?
  6. Describe a project that you worked on a lot or that was difficult
  7. Do you have any technical problems that you worked on as a team
  8. Has this project you are working on borrowed from other mature projects
  9. Tell me what the requirements and metrics are for your project
  10. How is the thread pool queue capacity determined in your project
  11. Are some of the solutions in the project individual ideas or the result of team discussions
  12. If let you do a mall system, you will do what technology selection
  13. What safety measures have been taken in the project
  14. How would you design a Taobao membership system?
  15. Where are you going in the future?

The interview summary

Every interview is torture. Although I have seen many interviews with Ali before, it is said that ali interviewers will grasp a certain point and keep asking until they ask you not, but when you experience it for the first time, it is still torture.

However, the final result was good, at least I received the offer I wanted, and I was able to find an internship under the bad environment during the epidemic.

For the whole learning process and interview process, the biggest feeling has four:

  • The basic knowledge should be solid, especially the basic knowledge of Java and database. If the basic knowledge is not solid, what framework and actual combat will not have good results
  • Read some technical blogs or articles, but to have their own thinking, because a lot of technical articles are closely with the development of the Internet, read some can better understand the development direction of the Internet; At the same time their own thinking can also let themselves filter out some of the articles in the poor point of view, do take its essence to its dregs
  • Initiative is very important, give me the senior is I take the initiative to know, my tutor is I take the initiative to know, learn technology is also I take the initiative to learn, there is no pie in the sky in this world, initiative will have a story
  • A proper tutor is really important. Before I met my tutor, I was at a loss about my learning direction and didn’t know how to start with many things, and many articles didn’t solve my problems. The teacher at this time can point out the direction, let me learn a lot less bumpy road

Share personal interview brush questions review notes

If you are interested in these interview notes, you can help yourself!

1. Java backend covers more than 1000 frequently asked interview questions and detailed answers

Thousands of Java, Spring, JVM, Collections, JVM, Mybatis, MySQL, DB, GC, Spring buckets, Dubbo, data structures, algorithms, Kafka, microservices, etc

Engineers who are interested in this copy can help forward it, add assistant Vx: Yunduoa2019 or scan the qr code below, follow the guidance of the assistant to obtain it

2, Ali P8 Daniel wrote out 283 pages of Java core knowledge

3. Interview guide

Interview review treasure book, brush before interview to help you special!

350 interviews in 2020

This several interview treasure book, Java core knowledge, second round interview treasure book interested engineer friends canPlease forward it and add assistant VX: Yunduoa2019 after following it or scan the qr code below and follow the guidance of the assistant to obtain it by yourself