background

I graduated from an unknown double non-undergraduate university in 2017. When I graduated, I had a heart to enter Dachang, but I wanted to stay in Chengdu instead of going to Beijing, Shanghai and Guangzhou. Now I regret it. That year in chengdu giant rare, coupled with the school when, very hard to play, to interview all hang up, throw a few companies also missed into big best opportunity, so I advise junior students if there is a pursuit about his career, have into the giant’s dream, must be well prepared, when junior school recruit the offer.

Finally, I did Java development in a local technology company in Chengdu, and also skipped a slot in the middle, which is also Java. But in the past few years, I always feel that the company can give too slow growth, although I am also learning, or unavoidable anxiety, especially like myself this kind of educational background and company background are general programmers, to ensure that they will not be eliminated, must do something. Therefore, after hearing that a former colleague was laid off by the company and finally entered Dachang, I completely ignited the fire in my heart to enter Dachang, and I also planned to try bytedance.

Because of the epidemic, many enterprises are facing difficulties. I also kept my wits about me and didn’t quit my job for the interview. But to make their own study plan, have to say, on-the-job review is really difficult, because of the possibility of overtime disruption of the plan. So I took all the personal time I could, like going to work at 10 in the morning, getting up at 6, doing LeetCode for two hours, washing up and going to work at 8. In the evening, if I had time, I would take out the questions I had brushed in the morning and continue to review them. I spent two months reviewing (previewing) data structure while doing the questions, and I basically went through all the high-frequency questions in LeetCode. Spend so much time to brush the questions, because their algorithm is too vegetables, did not carry out special practice before. After the problem is done almost, began to review professional knowledge, specific content I will sum up. After three months of preparation, I dared to make internal promotion. After eight interviews, the interview lasted for another three months. God paid off and I finally got to oc this month. The following is the interview content, too long time, may not remember too much, but basically includes all the questions, I work during the day, I choose to interview at night, haha

Side A Department

  1. Talk about the project, speak together, may encounter problems, how to solve, how to achieve, said to send customer service messages
  2. What about beans in Spring
  3. The difference between HashMap and ConcurrentHashMap, the red-black tree in HashMap, and rehash
  4. Redolog; undo log; Mysql; redolog; undo log; Mysql; redolog;
  5. Redis inside zset, how to implement the hop table, how to add and delete,
  6. How does Redis rehash
  7. Algorithm, binary tree to bidirectional linked list

Second interview with Department A

  1. To introduce myself
  2. Again, project, feature, architecture, role, magnitude
  3. What design patterns are available in Spring
  4. What’s the difference between SpringMVC and SpringBoot
  5. How is automatic configuration of SpringBoot implemented
  6. Just now you said thread pool, what do you use thread pool, what are the parameters, why do you set it like this
  7. What if the core thread pool is full, and what is the blocking queue in it
  8. What is a ThreadLocal
  9. CAP theory? Why not both
  10. What are the scenarios for data structures in Redis
  11. How to implement Redis lock (all pits of Redis lock are said again)
  12. Distributed transactions know, what are the schemes (2PC, 3PC, TCC, MQ)
  13. Algorithm problem. Diameter of a tree
  14. Is there anything you want to ask me

Department A on three sides

  1. Introduce the project
  2. Create a circle of friends. Read QPS 1000W and write QPS 10W
  3. The algorithm topic LFU
  4. What’s your problem

The interviewer was a leader, who was quite aggressive. He didn’t give good answers in many details, so his face was always bad and he felt cold after the interview. As expected, after the interview, different from the previous two times, THERE was no notice from HR. I was still very upset here, and I prepared for so long, because I failed to perform well in the last interview. After waiting for a month, I didn’t get any news for a month. After a month, I got a call from ByteHR, saying that I had good reviews in both aspects and asked me to try their department, so I agreed.

Side B Department

  1. Introduce the project, details
  2. How do we split services? How do we draw the boundaries
  3. What problems will be encountered after distributed, and each situation of CAP is introduced
  4. What is the dubbo call process, does PB know
  5. Thrift
  6. Zk introduce, which node types, characteristics
  7. How to know the importance of the interface in the project, how to do the monitoring, how to do the automated testing you said (this question answered, he smiled…)
  8. What do you understand the SLA to be and what level do you want it to be
  9. Tell me what you understand about K8S
  10. What is nginx’s upstream for
  11. What load balancing policies nginx has
  12. Algorithm: number of islands
  13. Do you have any questions for me

Second interview with Department B

  1. Introduce the project, details
  2. What are the implementations of locks
  3. The implementation of distributed lock
  4. JVM memory model, garbage collection algorithm
  5. MySQL transaction (); ACID ();
  6. Principle of HashMap, other thread-safe Map
  7. Redis high availability, what are the persistence methods
  8. Redis data structure, threading model
  9. What message queues have been used and what are their characteristics
  10. How to guarantee message idempotent consumption
  11. Docker network mode
  12. Algorithm: Compare version numbers
  13. Ask questions

Three sides B section (cross section)

  1. Introduce the project, details
  2. Memory management for Linux
  3. What network processing does the browser go through when opening a website? What is the specific process of DNS
  4. What is zK distributed model (CAP theorem), how do master and slave do election
  5. Zk has only one primary node and the write performance is not high. How does zK solve this problem
  6. Does ETCD or Consul know
  7. How can I quickly troubleshoot problems in multiple services
  8. What are the obsolescence methods in Redis? What are the reasons for Redis’ high performance
  9. Docker implementation principle
  10. Algorithm: Intersecting linked lists

Four-side B department (leader plane)

  1. Introduce the project, details
  2. What is the project size and what is the interface with the highest QPS
  3. How does RPC implement service discovery
  4. How is the Watch mechanism implemented in ZK
  5. Distributed lock which implementation, MySQL, ZK, Redis are said again, and analysis of their advantages and disadvantages, this question is asked too often
  6. How to improve database read and write performance
  7. K8s understand?
  8. Has Servicemesh ever done that

Section B (HR)

  1. Leaving reason
  2. Career planning
  3. Expected salary

Basic knowledge of

  1. Common sets and data structures (the specific realization of the principle of data add, delete, change and check operation, the meaning of each parameter, and how to combine them)
  2. Java syntax, OO ideas to be familiar with, common design patterns to know the scenario
  3. JVM memory model, garbage collection algorithm, garbage collector differences, GC tuning
  4. Threading model
  5. IO model (including operating system underlying IO model and common BIO, NIO, AIO, IO multiplexing principles)
  6. Redis (internal implementation of data structures, phase-out strategies, persistence, clustering, capacity expansion, data synchronization, and solutions to some common caching problems)
  7. MySQL (Indexing principles, query optimization, three major logs)
  8. Message queues (Internals, common message problem solutions)
  9. Distributed principles, algorithms, RPC principles (Principles of Paxos, Raft, ZooKeeper)
  10. Distributed scenarios (High availability, high performance related)

Other intellectual

  1. An operation
  2. Large data operations (completed in limited time and space)
  3. Design questions (see some common distributed ids, distributed counting services, etc.)

algorithm

  1. An array of
  2. The list
  3. An operation
  4. Binary trees (DFS, BFS, very important, once you know binary trees, so can backtracking algorithms)
  5. Design problem
  6. LRU/LFU
  7. The sorting
  8. To find the

This picture was summarized by some big guy when reviewing. If there is infringement, please contact me to delete it

conclusion

My advice to everyone is to take your time, whether it is social recruitment or school recruitment, make your own plan, be sure to have your own knowledge system, for their weaknesses to strengthen the review, do not let go of any details. Make sure you know what’s on your resume. It’s usually a question about your resume. If you feel difficult or difficult in the process of preparation, that is right, you get through, is victory. Finally, welcome to communicate with me, wish everyone can get a satisfactory offer.