Sharing of Java interview experience with Pinduoduo at the beginning of the year (document)

The interview summary of Ant, Toutiao, and Pinduoduo written in early 2020

The article is a bit long, please read it patiently, it is definitely rewarding! I don’t want to hear my BB go directly to the interview and share:

Preparation process

Ant Financial Interview Sharing

Pinduoduo interview sharing

Byte Beat Interview Sharing

to sum up

Speaking of starting the interview, it was the penultimate week of the year. At 9 o'clock in the morning, I was still on the company bus and suddenly received an interview call from Ant, which is not actually a real interview. The interviewer just talked to me about what they are doing (mainly to ensure the stability of the double eleven promotion, and it is middleware), and they said in detail, and then communicated with me whether they are interested, I After expressing interest, I received a formal interview notice later, and finally I did not choose to go to Ant to express my apologies.

At that time, I was also going to go out to see opportunities, and by the way to see my strength. I was actually quite entangled at the time. On the one hand, the department is also in need of me, so I can still do something. On the other hand, I feel that progress has been slow in the past year, and there is no sense of accomplishment of rapid progress before, and the business and technology are biased towards stability. In addition, I also belong to the kind of relatively lazy person, and I still hope to break through the status quo and continue to improve technically.

Entering the topic, we conducted interviews with Ant, Pinduoduo and Bytedance.

Preparation process

Let me talk about my own situation first. In 2016, I had an internship at Ant for nearly three months, and then went to my current old club. I have more than three years of work experience. It can be said that after graduation, I have been honestly upgrading my old club. Although I have an internship experience with Ant, it is still a bit imaginary because the time is too short. So the interviewer saw that the first question on my resume was absolutely like this.

"Wow, you have been at Ant, not bad," the interviewer asked with a grin. "Yes, it's fine", I said. "Why is it only three months?" the interviewer asked with a deep face. "Well, explain...", I explained. "Oh, that's the case, let's start the interview," the interviewer said solemnly.

Nima, I knew I didn't write about Ant's internship experience. I thought about it carefully later, didn't I add some material to my resume when I wrote Ant.

To return to the subject, the preparation process actually started very early (of course, this does not mean that I always think about changing jobs when I work, because I understand that my current boss is not the end, and I need to continue to improve), and it can be traced back to the time when Ant left. At that time, I met with a lot of companies, but there weren't any big companies. I met with about 5 companies and all got offers.

In my spare time, I often go to study the technologies I am interested in and the technologies used in my work, trying to understand the principles and practice them myself. In addition, I have bought more than N books, and I will read them when I have time to supplement the basics. I have basically reviewed the source code of operating systems, data structures and algorithms, MySQL, JDK, etc. (I will list them at the end of the article. Books and some good information). I know that the foundation is like the short board of the "barrel effect", which determines how much water can be filled.

In addition, before officially deciding to look at the opportunity, I made an outline for myself, mainly including the core points to be mastered by Java. If you don't understand, please check the information to understand. I position myself as a Java engineer, so the Java system must be well known. Many things are easy to show up when they don't have years of accumulation in interviews. Learn to be worthy of yourself and don't lie.

The rest is to find platforms and internal pushes. Except for Ants, Toutiao and Pinduoduo are all recruited for internal pushes. Thanks to the ant interviewers for admiring me, I might go to Ants in the future.

Platform: Maimai, GitHub, v2

Ant Financial (Five Sides)

Sharing of Java interview experience with Pinduoduo at the beginning of the year (document)

one side

At the same time, I did an algorithm problem, which was required to be completed within two hours. I gave an array of length N with repeated elements and asked to output the 10th largest number. The typical TopK problem is solved by the quick sorting algorithm.

Algorithmic questions should pay attention to the legality check, boundary conditions and abnormal handling. In addition, if you want to write test cases, you must ensure that the test coverage scenarios are as complete as possible. In addition to the usual brushing algorithm questions, this kind of assessment should be no problem.

Two sides

  1. Introduce yourself
  2. Have open source projects contributed code?
  3. What does the department currently do, what are the internal systems, functions, and interaction processes?
  4. What pits Dubbo has stepped on and how did they solve them?
  5. Start to get into the topic, talk about your understanding of thread safety
  6. What are the characteristics of transactions?
  7. How to understand atomicity?
  8. The difference between optimistic lock and pessimistic lock?
  9. How are these two locks implemented in Java and MySQL?
  10. Why is HashMap not thread-safe?
  11. How to make HashMap thread safe?
  12. What is the difference between the synchronize of Collections?
  13. What optimizations does jdk1.8 make to ConcurrentHashMap?
  14. Do you understand the redis master-slave mechanism? How did it happen?
  15. Have any experience in GC tuning?
  16. Do you have any questions?

Three sides

  1. Briefly introduce yourself
  2. How does the monitoring system do, which modules are divided into, and how do the modules interact? What database is used?
  3. What storage engine is used, and why use InnnoDB?
  4. Is the order form split, and how?
  5. The query process description after horizontal split
  6. What if the data falling into a certain shard is large?
  7. Is there any problem with hash modulo?
  8. How to solve the reading and writing pressure after sub-database sub-table?
  9. How to ensure that the primary key is unique after splitting?
  10. Is the ID generated by Snowflake globally incremented and unique?
  11. How to achieve a globally incremented unique ID?
  12. Mysql index structure
  13. The difference between primary key index and ordinary index?
  14. Where is the current bottleneck of your system?
  15. How do you plan to optimize? Briefly talk about your optimization ideas
  16. Is there anything you want to ask me?

All sides

  1. Introduce yourself
  2. Why do reverse engineering?
  3. How to understand microservices?
  4. How is service governance achieved?
  5. Isn't this something middleware does? Why does your department do it?
  6. Talk about the life cycle of Spring
  7. Talk about the GC process
  8. What's wrong with CMS GC?
  9. How to avoid floating garbage?
  10. What is the problem with forcing young gc?
  11. Do you know G1?
  12. What is the recycling process?
  13. How is the bottom layer of Remember Set you mentioned?
  14. Do you have any questions?

Five sides

Five faces are for HRBP. I made an appointment with me in advance, mainly talking about my previous internship experience at Ant, what the department is doing, career development, benefits, etc. Ali interviewers do have one-vote veto power, and they value whether your values ​​match or not, and generally prefer candidates who are honest. HR must be honest, don’t lie, as long as you lie, HR will verify it and cut it directly.

  1. Why didn't Ant stay after three months of internship?
  2. Who is the supervisor during the internship?
  3. What did the internship do?
  4. What do you think of technology? What technology stack do you usually use?
  5. Have you been researching anything recently
  6. What do you think of SRE
  7. Do you have any expectations for the treatment?

Finally, HR also told me that there is a shortage of people in the stability protection department, and I hope I will reply as soon as possible.

summary

Ant interviews pay more attention to basics, so the basic skills of Java must be solid. Ant's working environment is quite good, because I am in front of the stability protection department, and there are many separate groups, like Class 1 for three years, which is very youthful. The basic level of the interviewers is relatively high, basically P7 or above, in addition to the basics, they also asked a lot of questions about the architecture design, and the harvest was quite big.

Pinduoduo (three sides)

Sharing of Java interview experience with Pinduoduo at the beginning of the year (document)

Before the interview

After facing the ants, I had heard about the unicorn Pinduoduo, and decided to go there too. First of all, I found a Pinduoduo HR in Maimai, added a WeChat chat, and sent my resume to start my Pinduoduo interview journey. I would like to thank Pinduoduo HR Miss Sister, who has been helping me from the interview to the offer confirmation. She is really nice.

one side

  1. Why did the ants only stay for three months? Didn't get regular?
  2. Explanation of HashMap and TreeMap in Java?
  3. What is the time complexity of TreeMap query writing?
  4. What's wrong with HashMap multithreading?
  5. What is the difference between CAS and synchronize? Isn't it possible to use synchronize?
  6. What if you want to ensure thread safety? (ConcurrentHashMap)
  7. How does ConcurrentHashMap achieve thread safety?
  8. Does get need to be locked and why?
  9. What is the role of volatile?
  10. How is the bottom layer implemented?
  11. How is visibility guaranteed under multi-core CPUs?
  12. Talking about projects, how do the systems interact?
  13. How much is the system concurrent and how to optimize?
  14. Give me a piece of paper, draw a nine squares, fill in the numbers, give an MN matrix, print the MN numbers counterclockwise starting from 1, requiring the time complexity to be as low as possible
  15. You can talk about your thoughts first (remembered, when to change the direction of the conditions, right, down, left, up, and so on)
  16. What do you want to ask me?

Two sides

  1. Introduce myself
  2. Do you have any other offers?
  3. What is the organizational structure of the department?
  4. What are the modules in the system, what technologies are used in each module, and how does the data flow?
  5. How is the link tracking information transmitted?
  6. How does SpanId guarantee uniqueness?
  7. In what dimension is RpcContext passed?
  8. How is Dubbo's remote call implemented?
  9. How is Spring's singleton implemented?
  10. Why implement a service governance framework separately?
  11. Who is leading? Is it still in use internally?
  12. Have you ever thought about how to make it universal?
  13. Do you have any questions?

Three sides

After the face of the second boss, he directly interviewed the HR, mainly asking about career development, whether there are other offers, and the intention to enter the job. By the way, the company's benefits and benefits are more conventional. But what I have to say is that there will be some bonus points if you have other offers or experience in big factories.

summary

Pinduoduo's interview process is much simpler, after all, it is a company established for more than three years. The difficulty of the interview is moderate, as long as the foundation is solid should not be a problem. But I have to say that the work intensity is very high. Before the start of the interview, HR confirmed with me in advance whether I can accept such an intensity of work. The old iron who wants to come must be prepared.

Byte beating

Sharing of Java interview experience with Pinduoduo at the beginning of the year (document)

Before the interview

Toutiao’s interview is the most professional of the three families. Before each interview, a special HR will make an appointment with you, and the interview will be conducted after confirming OK. Every time I passed the video interview, because it was always on the phone or on-site, the video interview was still a bit unnatural. Some people think the video interview experience is very good, of course, turnip greens have their own love. At the worst, the interviewer's network is always disconnected, and finally hangs up unjustly (of course, some points are not answered well as one of the reasons). So it is still a bit regrettable.

one side

  1. Introduce yourself first
  2. Talk about the project, what does the reverse system mean
  3. Talk about the project, what technologies are used in the reverse system
  4. How to determine the number of threads in the thread pool?
  5. How to determine if it is mainly IO operation?
  6. How to determine if a computational operation?
  7. Are you familiar with Redis and what data structures do you know?
  8. What is the query process of the skip table, and the time complexity of query and insertion?
  9. Do you understand the red-black tree? Time complexity?
  10. Since the time complexity of the two data structures is O(logN), why does zset not use red-black trees?
  11. Nodded, and talked about the principle of Dubbo?
  12. Does CAS understand?
  13. Let's do a problem, array A, 2*n elements, n odd numbers, n even numbers, design an algorithm so that the odd numbers in the array are all odd numbers, and the even numbers are even numbers.
  14. Let me talk about your thoughts first
  15. The next odd number? How to find?
  16. Any ideas?
  17. Your time complexity is a bit high, what if you require O(N)?
  18. Time is almost up, let's get here first. What do you want to ask me?

Two sides

  1. The interviewer is very kind, so introduce yourself first
  2. How do you understand service governance?
  3. How to achieve the current limit in the project?
  4. How does it work?
  5. If suddenly many threads request tokens at the same time, what's the problem?
  6. How to solve it?
  7. What if I don't use the message queue?
  8. How is the context of distributed tracing stored and transferred?
  9. How is Dubbo's RpcContext passed?
  10. How exactly did the memory leak you mentioned occur?
  11. Does the thread of the thread pool have to manually remove to reclaim the value?
  12. Do you mean the memory leak in the main thread or the thread pool?
  13. But isn't the main thread exited, shouldn't the referenced objects be recycled?
  14. So how do you tell SpringMVC different user login information to ensure thread safety?
  15. Isn't it enough to use ThreadLocal directly? Have you seen any code implemented by SpringMVC with locks?
  16. Let's talk about mysql, talk about the index structure
  17. Why use B+ tree?
  18. What is index coverage?
  19. Why does Java design a parent delegation model?
  20. When do you need a custom class loader?
  21. Let's do a problem, handwriting an object pool
  22. Is there anything you want to ask me?

summary

Toutiao’s interview is indeed very professional. Every time the interviewer will send you a video link in advance, and then start the interview on time, and the points examined are relatively complete.

Interviewers have a characteristic. They will grasp a point that is worthy of in-depth or that you haven't made clear until you make it clear, otherwise the interviewer will feel that you don't really understand. The second interviewer gave me some suggestions. When researching technology, we must study the background and figure out what specific problems are solved in which scenarios. In fact, many technologies are interlinked. Very sincere, still very grateful to the interviewer greatly.

to sum up

It took about a month from the beginning of the interview to the end of Toutiao Noodles a year ago, and I felt a bit exhausted. In the end, I got an offer from Pinduoduo and Ant. I was lucky. The interview on Toutiao helped me a lot. I would like to thank the interviewer again for his sincere suggestions and Pinduoduo’s HR for detailed answers to my long-winded questions.

What I want to say here is to do two things well before the interview: resume and self-introduction. The resume should be a good review of some of the projects you have done, and then pick a few highlight projects. Self-introduction is basically available in every round of interview, so it is best to practice in advance and figure out what to say and how to say it separately. In addition, the technology mentioned in the resume must have been studied in depth by yourself. If you have not studied in depth, it is better to find some information to warm up and not fight unprepared battles.

Books read these years :

"Java Core Knowledge", "Java Interview Collection", "High Concurrency and Multithreading", "Java Program Performance Optimization", "Spring Actual Combat", "Zookeeper", "High Performance MySQL", "Billion-level Website Architecture Core Technology", "Can Scalable Service Architecture", "Java Programming Thoughts"

To be honest, many of these books only read part of it. I usually read the books with questions, otherwise I fall asleep when I look at them. It's a hypnotic medicine.

Sharing of Java interview experience with Pinduoduo at the beginning of the year (document)

Finally, attach a brain map prepared before the interview:

Sharing of Java interview experience with Pinduoduo at the beginning of the year (document)

Before the interview, you must brush up the questions. In order to facilitate your review, I will share a collection of personal interviews.

If you want to get personal high-definition interview preparation, you can click here to get it and personally have prepared a lot of interview questions with answers to the information for you to brush!

  • Java core knowledge finishing

Sharing of Java interview experience with Pinduoduo at the beginning of the year (document)

Java core knowledge

  • Spring family bucket (actual series)

Sharing of Java interview experience with Pinduoduo at the beginning of the year (document)

  • Other e-book information

Sharing of Java interview experience with Pinduoduo at the beginning of the year (document)

Step3: Brush the question

Since it is an interview, it is indispensable to brush the questions. In fact, after I go home during the Spring Festival, I can’t go anywhere. I have brushed a lot of interview questions myself, so I can know it well during the interview process, and I will basically know it. What knowledge points will be asked during the interview, and what are the high-frequency questions, so brushing the questions is a very important point in the pre-interview preparation process.

The following is my private interview question bank:

Sharing of Java interview experience with Pinduoduo at the beginning of the year (document)

Write at the end

Many people lament that "learning is useless". In fact, the reason why the theory of uselessness arises is because what they want does not match what they have learned, which means that they have not learned enough. Whether it is studying or working, there should be initiative, so if you have the dream of a big factory, then you have to work hard to realize it.

The above learning materials are all free of charge. Finally, I wish you all good health and successfully get your favorite offer!

How to get information: Like + comment on my article, follow me, then click here to get it for free~

Guess you like

Origin blog.csdn.net/lyl5454/article/details/112885470