As the title indicates, my personal background is very simple. I have 1 and a half years of Java development experience, ordinary education, and 2 bachelor degrees. After graduation, I have been in Crud. The repeated work in the company every day does not help me to improve my technology. , But when I came out of the small town, I also knew the importance of self-effort. If you want to change your "destiny", people without background and capital can only get it through hard work.
The goddess of luck tends to favor people who work hard, so when good fortune comes to me, I am not surprised. I have received a 30K offer from Meituan. I will not talk nonsense below. I will mainly share my "Meituan interview experience". And "personal learning methods", I hope to help you.
The content is too much, not suitable for all the explanations in the article. The interview questions and learning materials below are organized in pdf. For those who need information, please check the download address at the end of the article after one-click and three-link
Meituan interview experience (restore the most authentic 4 aspects)
2. Talk about the project
Introducing the project
How to ensure data consistency between redis and Mysql
See you wrote a random number to prevent cache avalanches, explain
Comparison of unimproved and improved Jmter test performance
Why choose Redis as the cache?
Why is the performance of Redis so high?
Talk about the comparison between single-process, single-threaded Redis and the multi-threaded program you usually write
How to ensure the high availability of Redis? (Sentinel, persistence strategy RDB, AOF)
Explain Sentinel, RDB, AOF
Redis data elimination strategy
Can you talk about distributed transactions?
Is setnx a transaction?
Explain the affairs
Talk about the transaction isolation level
Why use B+ tree as index
The difference between clustered index and non-clustered index
How does Java guarantee its security
I just saw you talk about the Java memory leak problem, explain under what circumstances it will appear
Talk about BIO, NIO, AIO
6. Hand tearing algorithm
Find the number with the most occurrences in an array, and output the first number if the occurrences of multiple numbers are the same
Producer consumer (one to one)
How do you usually study
Is there anything I need to ask?
Meituan two sides:
1. Hand tearing algorithm
10 multi-threads guarantee that i increases from 0 to 10 (almost overturned, the main thread is busy waiting for the completion of the other 10 threads)
Reverse linked list
Step up (n=80)
2. Operating system
Commonly used linux commands to talk about
What is the relationship between signals and semaphores in the operating system
What is the difference between epoll and Selector?
3. Computer network
Talk about congestion control
4. Data structure
Let’s talk about the red-black tree. Where does your usual technique use it?
How does the hash table handle conflicts?
5. Project related
Did you encounter any problems when you put the project on the server and run it? How to check the running status of the project?
How do you understand the relationship between spring and springboot?
Spring IOC and AOP talk about your understanding
Why use message queues?
Do you have any design plans for repeated consumption of messages?
Three sides of Meituan:
How did you learn Java?
Do you understand design patterns? Let's talk about a single example, how to implement double-check for lazy and hungry people. Strategy mode, appearance mode, adapter mode, decorator mode, talk about them separately
When will the joint index not trigger the index?
Do you understand AOP, what are its benefits, how to use it, and how to achieve it?
How to realize the transfer business from Alipay to the bank?
redis implements distributed locks
Three machine clusters are accessed according to different weights. How to do it?
Meituan four sides (hr):
Introduce yourself first
Talk about the four IO models
How do you usually study?
Why do you say that you have to practice after learning?
Talk about the biggest advantages and disadvantages
Give an example of your shortcomings
Imagine what your life will be like decades from now?
The most painful period you feel
The thing that affects you the most
Are there any conflicts in the process of arranging the event?
Do you have anyone you admire?
What do you want to ask?
Let "effort" be your background (how to learn?)
1. Watch the video for systematic learning
The experience of Crud for more than a year has made me realize that I am really a fighter in the rookie. It is also because of Crud that my technology is relatively fragmented and not deep enough and not systematic enough, so it is necessary to re-learn. What I lack is the system knowledge, the poor structural framework and the thinking, so learning through videos is better and more comprehensive. Regarding video learning, individuals can recommend to study at station B. There are many learning videos on station B. The only drawback is that they are free and easy to be outdated.
In addition, I have collected several sets of video materials on the network disk, and I can share them with you if necessary:
2. Read the source code, read the actual combat notes, and learn the ideas of God
"Programming language is the way the programmer expresses, and the architecture is the programmer's cognition of the world". Therefore, if programmers want to quickly understand and learn the architecture, reading the source code is essential. Reading the source code is to solve problems + understand things, and more importantly: to see the ideas behind the source code; programmers say: read thousands of lines of source code and practice thousands of ways.
Deep analysis of Spring source code:
Deep analysis of Mybatis 3 source code:
Redis study notes:
Spring Boot core technology-notes:
3. On the eve of the interview, sprint through questions
Within a week before the interview, you can start sprinting. Please keep in mind that when brushing the questions, the technology is the first priority, and the algorithm is basic, such as sorting, etc., and the intellectual questions are generally not asked unless they are school recruits.
Regarding the interview questions, I personally prepared a set of systematic interview questions to help you learn from one another:
to sum up
Only with strong skills, you don’t have to worry about getting a job wherever you go. “You can’t take it all, but you can carry it with you.” Learning is not a matter of the last few years in the classroom, but an uninterrupted thing in the journey of life.
Life is short, don't live a life silly, don't die.
The Java interview questions, source code documents, technical notes and other learning materials involved in the content of the article can be shared for everyone to learn for free, as long as you have a lot of support!
——If you need information, you can get a free download by "check the picture below" after one-click and three-connection