Recently, I interviewed many Internet companies and finally received the offer from Ali. Before the interview, I also collected the interview questions on the Internet, but some of them were not outdated, or the questions were messy and the induction was not systematic. After the interview, I sorted out the process of the interview with Ali as a summary. Later, some friends asked me for the interview record, so I simply posted it and shared it with everyone.

Because my colleagues have interviewed jingdong, Meituan, Didi and other large Internet companies before, please sort out the interview questions and share them with me. If you are interested, I recommend you to follow the Wechat public account Java Information database, which contains algorithm interview questions, BAT interview questions and interview skills, etc.

One side

First of all, I introduced myself. Then I asked about the project content. I said two modules of instant messaging and video processing. He asked me to draw a module architecture diagram, which I suggest you prepare. Both Ali and Baidu require applicants to draw a module diagram to examine their development levels and ideas. I was not prepared, but I still remembered the UML during the design review, so I drew the module diagram and class diagram.

The interviewer then asked if there were any difficulties; I said yes, performance bottlenecks, lag issues, and UI freezes due to instantaneous information overload. He asked how to solve, I said by the real-time refresh to periodic refresh; He asked if there was a better way to do it, and I said useful task queues.

We debated whether the task queue should be designed with fifO or LIFO. By this time I had forgotten the interview, just want to win, faster and faster, louder and louder. He challenged me that this mechanism was meaningless in terms of efficiency tuning because the system would cache cells; I said the system cache works in the middle, and at the bottom it stops working, and it gets stuck. In the end, I won, and time passed an hour before I knew it.

When ASKED how Tencent did it, I said I don’t know, I guess so. I asked about the use and principle of filters, how to whiten, AND I told me how to modify the value of OpenGL, and how to do video composition, which is very easy to extract the video and audio track and use composition. Add the image layer on top of the video track layer from the file.

It’s ok to set the start time and duration, frame rate, and then I asked why I came for an interview. At the same time, the officer finally asked me where I work.

Second interview

After the first interview, I was asked to take a rest. The second interview was very nice. He introduced himself before asking me to introduce myself. The department he was in charge of was the core department.

The content of the interview is similar to that of the first interview. I was asked to draw the system architecture diagram I designed on the whiteboard and then explain it. I asked about my career plan, and I said I still want to write code at this stage. He asked how long, but I say two years, asked me how I can look for management positions, I said a good management can help team members first solve the problem, I now level to reach this level, also want to write more code, the code can design more reasonable, after the amount like this design when there are several didn’t consider the optimization point, a little regret. After the interviewer asked me if I had any questions, I asked about the situation of their department and corporate culture. The interviewer seemed satisfied and asked me to go to HR for an interview, stressing that talking to HR was not an interview.

Hr just asked me about the housing price in Hangzhou and whether I could come to Hangzhou for development. I said I would think about it and I didn’t know whether you would hire me. After half an hour of idle talk, I went back home. Three days later, I received the offer notification and introduction from Ali. The salary I gave exceeded my psychological expectation again, as well as the option I have been dreaming of.

Ali interview with Tencent Baidu are different, feel more focused on project practice. In conclusion, the technical aspects of BAT are almost the same. As long as the internal and external skills are well cultivated and some practical experience, they can basically cope with the three major interviews.

The core of the interview process

Technical side, technical side (group leader side), director side, HR side, Tencent will have a manager side; But the general director thinks feasible, 90% of the applicants will go through the manager’s interview, unless serious lying is detected; Hr face is going through the motions, brush the probability is basically zero. I once recruited a student, but the HR wanted to dismiss him because he didn’t have any experience in a large company, and he was scolded by our team leader, who said that he was suitable and practical in all aspects. If you don’t think he is suitable for this job, you should be responsible for hiring someone who you think is suitable, otherwise we can’t continue our work, and hr will be weak. As it turned out, the colleague did a pretty good job, and the size of the company didn’t matter. The most difficult part is the second and third sides, and people are basically the two sides. We must be careful. In my experience, the more serious the director, the more likely he is to pass, and the more polite he is, the more dangerous it is.

A: Well, it shouldn’t be called an interview. It should be called an interview. Sit down and talk and get to know each other. We programmers as technical workers are not there to find jobs, just to see your opportunities, you can keep your job, I keep my way of doing things.

The interview questions

  1. What’s wrong with ThreadLocal? What happens if threads in a thread pool use ThreadLocal?

  2. Class loading mechanism, why parent delegate? How to break the parent delegate loading mechanism

  3. If you had a 1 million QPS project, how would you consider the system design?

  4. What design patterns do you often use?

  5. Are you familiar with the Reactive development model?

  6. What distributed technologies are you familiar with? Do you understand their underlying implementation mechanism?

  7. How do Springcloud components work?

  8. What is the implementation principle of TreeMap and TreeSet?

  9. What’s the difference between Array and ArrayList?

  10. What are the data areas of the JVM and what do they do?

  11. What is the JVM heap memory structure? What circumstances trigger GC? What GC is triggered?

  12. How did you optimize the database?

  13. What is the difference between synchronization and Lock?

  14. Have you used a reverse proxy server? For what? What are the parameters of nginx load balancing?

  15. What are the implementation principles of message pair middleware that you are familiar with? What are the advantages compared to other messages?

  16. The difference between Poll and ePool?

  17. What is the difference between BIO and NIO?

  18. There is a variable list, which contains the number of instances of the cluster. There is a variable Batch, which is used to evenly deploy all instances of the cluster.

  19. What are your career plans? Annual salary expected?

About the future of the Java industry

As the IT training industry continues to grow and a large number of new graduates enter the society, Java programmers face more and more competitive pressure. Then, as a Java programmer, how to quickly grow up to be a senior programmer or architect, or a good senior architects should have what kind of technical knowledge, this is not only a junior programmer just step into the workplace, began his lost job after three to five years old programmer, all have to face and want to understand the problem.

In order to help you avoid detours, I asked my colleagues who have worked in the Internet industry to summarize a set of technical system. As the content is huge, a set of video is specially arranged. The interview is mainly for BAT first-line large Internet companies, covering Java engineering, high performance and distribution, performance tuning, Spring, Netty source code analysis and big data interview skills, want to know more details can join the Java backend technology group: 819940388, free large Internet Java technology video to share with you.

The original link: my.oschina.net/u/3938812/b…