Meituan learning method + interview experience! One year of Java development, and a low degree of education successfully got 30 KOffer!

​Personal background

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.

Shuanghui Development

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)

Meituan side:

1. Self-introduction

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

3. Redis

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

Master-slave consistency

Redis data elimination strategy

Can you talk about distributed transactions?

Is setnx a transaction?

4. Mysql

Explain the affairs

Talk about the transaction isolation level

Why use B+ tree as index

The difference between clustered index and non-clustered index

5. Java

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)

7. Other

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