I have always wanted to vote for Bytedance before, and I have a good overall impression of Bytedance. It is equal to tltle, rapid development and large room for growth. Now there are more business lines and the company's platform has also reached a higher level. This year's Spring Recruitment voted ByteDance decisively. But it was still brushed, which was a pity, but fortunately, it was picked up by Didi. At the end of the article, I shared my personal review of the interview, including some of the gold, nine, and silver, and ten preparation resources and actual source code of the project that I collected! (Taken at the end of the article)
The vibrato side (45 minutes):
- Ask java, java basic types, talk about the memory difference between int and float
- Thread pool parameters, talk about how to sort the waiting queue of the timer (heap)
- How to solve http 1.1 header blocking, keep-alive function, how to order the flow of http2.0 pipeline, http header information
- What to do if java cpu accounts for 100, what to do if deadlock,
- Implement a dictionary tree
- There are also some regular questions
Douyin two sides (more than 50 minutes)
- Various status codes of http, talk about 5xx gateway errors (no).
- Talk about the communication between processes,
- Talk about io multiplexing
- Implement a current limiter
- Algorithm: Given an unordered int array, which can be positive or negative, given an integer k. Find the length of the longest sub-array whose cumulative sum is k among all sub-arrays of the array. For example, when arr=[2,4,-1,1,7,6,3,-2,3] & k=6, value=4
Three sides of Douyin (80 minutes)
- Introduction (The interviewer’s device was stuck for 15 minutes)
- Talked about project, business, technology (30 minutes)
- Logic questions (red hat, enhanced version of white hat) (20 minutes)
- Algorithmic questions (combine k linked lists)
- Then basically every aspect is jagged with the details and principles of technical points.
Waiting hard for four hours! A thank you letter backhand! I cried, I still blame myself for cooking
Didi one side
1. JVM memory model
2. The principle of garbage collection of GC, how is GC realized
3. Zookeeper application scenario
4. What is distributed lock
5. What algorithm is zookeeper based on to achieve distributed consistency?
6. Do you know what are distributed?
7. What does redis generally use it for? Cache
8. Redis commonly used data structure
9. Is it atomic when redis writes a kv? What is atomicity.
10. How redis persistence is done
11. The idea of data synchronization, synchronizing cache and database
12. Design patterns
you know 13. Do you know when to use these design patterns, such as the factory pattern, and in what scenarios will you consider using it? Factory mode.
14. During the video process, the camera collects my data and presents it to you. Simply use your understanding to analyze the flow process.
15. The principle of mysql database index
16. Joint index, when to consider establishing a joint index
Didi two sides
1. Self-introduction, project highlight introduction
2. Which components are used best: all understand
3. Redis single-threaded model, why does he use single-threaded model, what are the advantages of single-threaded model?
4. The biggest problem of single thread is that it can only use one CPU and cannot distribute the load to other CPUs. Then the problem comes. Now most of the CPU performance is not high. In this case, redis can only use Single-core, one of 32-core, 31-core onlookers, then the performance will not be high. Then why redis still uses a core.
5. JVM classloader can tell me how he does it. Java supports dynamic loading of jar packages and extension of its own functions. The jvm loads a jar package in real time, what happens, the class loader does, what happens to the jvm, what will it do.
6. How garbage collection is done in the heap
7. SQL optimization
9. Which layer
does HTTP TCP IP belong to? 10. HTTP 1.1 and HTTP
2.0 11. HTTP 2.0 compression algorithm
12. When is TCP CLOSE_WAIT Appear, when will it not appear. When does TIME_WAIT appear?
Code: Reverse linked list
Three sides of Didi:
1. The process of sending HTTP requests.
2. How the domain name is mapped to the server.
3. There are some changes between the root domain name server, ip and the domain name. Do you know how this change spreads in the Ethernet system?
4. TCP three-way handshake process
5. Why waved hands 4 times and established 3 times
6. CLOSE_WAIT, FIN_WAIT, TIME_WAIT
1. Two arrays in an ordered array, find the median
2. Sword refers to the copy of the Offer35 complex linked list
3. Bayesian: The detection rate of a test strip is 99%, and the probability of getting the disease in the population is 0.01%. Ask a person who is positive after a test strip test, what is the true probability that he is sick?
4. Fast sorting, time complexity, worst time complexity
Two original leetcode questions, I haven't seen it before. . . I blame myself for having fewer questions and seeing less.
Personal review/breaking thoughts:
In fact, the question pointed out by the interviewer is very clear to me. As for the test-oriented contestant , I know my biggest problem very well when I come to NetEase. I grew up as a typical test-oriented player, a typical "dead" hardworking player. I realized this problem when I was in junior high school, but I didn't change it. In high school, my motto was "Efforts will not necessarily lead to success. If you don't work hard, you must Will not succeed", finally setbacks followed. Alas, don't escape when you encounter problems, but I'm still a bit confused.
And, BYTE attaches great importance to replays (if you hear it, please go to replays!!!) , I did not replay after the replays of the first two sides, and dug a big hole for myself, I deserve it, Breathing blood!
Let’s start my road to recovery (Java direction):
Due to space reasons, in order to avoid affecting everyone's reading experience, only part of the content is shown in screenshots. Friends who need the full version of the source code notes + the actual source code of the project have a way to receive it at the end of the article!
1. Basic skills:
- Java basic review (object-oriented + Java super class + Java reflection mechanism + exception handling + collections + generics + basic IO operations + multithreading + network programming + JDK new features)
- Preliminary Exploration of Web Programming (Servlet+MySQL Database+Commodity Management System Actual Combat)
- SSM from entry to master (Spring+SpringMVC+Mybatis+ commodity management system combat- SSM version)
- SpringBoot quick start (SpringBoot + SpringBoot-based commodity management system actual combat)
- Zero-distance Internet project combat (Linux + Redis + double eleven spike combat system)
- Corresponding source code notes + actual project combat:
- Actual Combat of Commodity Management System Based on SpringBoot
2. Interpretation of the open source framework by design thinking
- Advanced concurrent programming (concurrent tool combat + CAS + display lock analysis + thread pool internal mechanism + performance optimization)
- JVM in-depth analysis (understanding the runtime data area + interpretation of off-heap memory + JDK + memory leak troubleshooting + Arthas + GC algorithm and garbage collector + class loading mechanism, etc.)
- MySQL Advanced
- Deep into the bottom of Tomcat (threading model + performance tuning)
3. Performance linear improvement architecture technology
- Database (tuning + transaction + lock + cluster + master-slave + cache, etc.)
- Linux (command + production environment + log, etc.)
- Middleware & distributed (dubbo+MQ/kafka, ElasticSearch, SpringCloud and other components)
4. Efficient storage allows project performance to take off
- Open source framework (Spring5 source code + SpringMVC source code + Mybatis source code)
- Distributed architecture (Zk actual combat+RabbitMQ+RocketMQ+Kafka)
- Efficient storage (Redis+mongoDB+MySQL high availability+Mycat+Sharing-Sphere)
- Microservice architecture (RPC+SpringBoot+SpringCloud Netflix+SpringCloud Alibaba+docker+k8s)
- Springboot Enterprise User Authority System Project Actual Combat
Due to space limitations, we will not show them one by one. Those who need the full version of the source code notes + the actual source code of the project should pay attention to it: one-click three links (like + favorite + follow)