The first interview in 2021: Three-sided Pinduoduo Java back-end development post, I have already got an offer!

Pinduoduo

 

Two-faced headlines, three-faced Pinduoduo, and five-faced ants share a summary of the experience to help you get a big offer

  • Before the interview
  • one side
  • Two sides
  • Three sides
  • summary

Before the interview

After facing the ants, I had already heard about the unicorn of Pinduoduo, so I 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 Miss Pinduoduo HR for helping me from the interview to the offer confirmation. She is really nice.

one side

  • Why did the ants only stay for three months? Didn't get regular? (I got a regularization and explained it...)
  • Explanation of HashMap and TreeMap in Java? (TreeMap red-black tree, ordered, HashMap unordered, array + linked list)
  • What is the time complexity of TreeMap query writing? (O(logN))
  • What's wrong with HashMap multithreading? (Thread safety, deadlock) How to solve it? (Synchronize + CAS is used in jdk1.8. When expanding the capacity, use CAS to check if there are any changes. If it is, try again) Will there be any problems with retrying? (CAS (Compare And Swap) is comparison and exchange, which will not cause thread blocking, but because the retry is achieved through spin, it will still take up CPU time, and there is also the problem of ABA) How to solve it? (Timeout, limit the number of spins, ABA can be solved by the principle variable AtomicStampedReference, the principle uses the version number for comparison) What if the number of retries is exceeded and it still fails? (synchronize mutex lock)
  • What is the difference between CAS and synchronize? Isn't it possible to use synchronize? (CAS is an optimistic lock, does not need to be blocked, the atomicity achieved at the hardware level; synchronize will block, the atomicity achieved at the JVM level. Different usage scenarios, when the thread conflict is serious, CAS will cause excessive CPU pressure, resulting in a decrease in throughput, synchronize The principle is to spin first and then block. The thread conflicts are serious and there is still a higher throughput, because the threads are blocked and will not occupy the CPU.)
  • What if you want to ensure thread safety? (ConcurrentHashMap)
  • How does ConcurrentHashMap achieve thread safety? (Segment lock)
  • Does get need to be locked and why? (No, volatile keyword)
  • What is the role of volatile? (Guaranteed memory visibility)
  • How is the bottom layer implemented? (Talking about main memory and working memory, read-write memory barrier, happen-before, and draw thread interaction diagram on paper)
  • How to ensure visibility under multi-core CPUs? (Thinking for a while, bus sniffing technology)
  • Talking about the project, how do the systems interact?
  • How much is the system concurrency and how to optimize it?
  • 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, and require the time complexity to be as low as possible (inner OS: it seems to have encountered before This question, how to achieve the optimal solution) thinking. . .
  • You can talk about your thoughts first (remembered, when to say when to change the direction of the conditions, to the right, down, left, up, and so on)
  • What do you want to ask me?

Two sides

  • Introduce myself
  • Do you have any other offers? (Take the offer of ants)
  • What is the organizational structure of the department? (Isn’t this round technical, but let’s be honest)
  • What are the modules in the system, what technologies are used in each module, and how does the data flow? (The interviewer is a bit bald, and the level is very high at first glance) I was given a piece of paper, and I briefly drew the flow between systems on it
  • How is the link tracking information transmitted? (The attachment of RpcContext talks about the structure of Span: parentSpanId + curSpanId)
  • How does SpanId guarantee uniqueness? (UUID, talked about internal customization changes)
  • In what dimension is RpcContext passed? (Thread)
  • How is Dubbo's remote call implemented? (I talked about reading configuration, assembling url, creating Invoker, service export, service registration, and consumers through dynamic proxy, filter, obtaining Invoker list, load balancing, etc. (walala talked about more than 10 minutes), can I drink water? )
  • How is Spring's singleton implemented? (Singleton Registration Form)
  • Why implement a service governance framework separately? (Said that the internal microservices have just been launched soon, mainly for some monitoring and performance optimization of services)
  • Who is leading? Is it still in use internally?
  • Have you ever thought about how to make it universal?
  • Is there anything you want to ask?

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 if you have other offers or experience with big factories, you will get some bonus points.

summary

Pinduoduo's interview process is much simpler, after all, it is a company that has been established for more than three years. The difficulty of the interview is moderate, as long as the foundation is solid, it shouldn't 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 should still be prepared. The above interview questions have been sorted into document notes. Pay attention to the public account: Kylin bug fix is ​​free to get.

 

Guess you like

Origin blog.csdn.net/QLCZ0809/article/details/112853211