I was forced to go to the JD Java R&D post after being laid off, but I did not expect to get an offer! Social recruitment interview (interview experience + real question summary + experience sharing)

This article mainly introduces my friend who was laid off and was forced to go down to the JD Java R&D post. I didn’t expect to get relevant information about the offer. I’m here to sort out his interview experience, real questions, etc., now Share with everyone.

background

•Interview experience
•Jingdong interview questions
•Interview experience sharing
All important knowledge points are written here, whether it is core knowledge points or interview questions, so that everyone has a basic outline of the knowledge framework
and also organized 283 pages The PDF document is also the core knowledge point of Java.
Friends in need can, click here to receive! ! ! , The code is: CSDNInsert picture description here

1. Interview experience

2020 is undoubtedly a cold winter for programmers. I am also one of the layoffs. (The entire business line is cut and uncomfortable~) But it’s not good to go home after unemployment is approaching the end of the year, so I voted for a few resumes. A copy of Jingdong, requested by Jingdong Java post.

Requirements:
• Bachelor degree or above in computer related majors, strong logical thinking ability, strong sense of responsibility and initiative;
• More than 3 years of J2EE development experience, Internet development experience, solid JAVA foundation, and proficient use of design patterns;
• Proficiency master Spring, Struts2, Ibatis other commonly used framework for understanding mechanisms;
• familiar with the distributed development, familiar with common SOA framework, multithreading, network programming;
• familiar with common database and optimization, familiar with common cache, NoSql technology;
• familiar Zookeeper, MQ Other components;
• Experience in system development and optimization with high concurrency and large data volume is preferred;
Experience in Internet finance, especially insurance business development, is preferred.

2. Jingdong interview questions

On the one hand (mainly the basics)
• Self-introduction, mainly asking what we have done and what we are good at
• @Autowired implementation principle
• What is the default scope of Bean? Other scope of action?
• What is the function of the index?
• What are the main index structures in MySQL? Compare hash index and B+ tree index?
• Talk about the principle of Java thread pool? What are the thread pools? What are the thread pool types of the thread pool factory and what are the thread pool parameters?
•Hashmap principle, which method is used to deal with hash conflicts?
• What are the differences and connections between BIO, NIO and AIO?
• JVM memory model Jmm knows all about it
• Tell me about the Java GC mechanism?
• How does Java perform garbage collection? Who will enter the old age?
• What are the garbage collection algorithms? Why does the new generation use replication algorithms?
• The time complexity of HashMap? How to resolve Hash conflict in HashMap? 1. What is the change of HashMap in Java8?
• The red-black tree needs to be compared in size to be inserted. What is the basis for comparison? Other Hash conflict resolution methods?
• The difference between hash and B+ tree? What scenarios are they applied to? Which is better?

Two sides (database asks more)

•Introduction to myself
•Why MyISAM query performance is good?
• Talk about transaction characteristics (ACID)?
• MySQL database default storage engine, what are the advantages
• MySQL transaction isolation level, what problems are solved respectively.
• What are the common optimization steps for SQL slow queries?
• Talk about optimistic locking, pessimistic locking (select for update), and write SQL implementation?
• Tell me about the three-way handshake and four-way wave of the TCP protocol?
• Which rpc frameworks have you used?
• What is the life cycle of Java web filters?

Three sides (comprehensive side mainly distributed and cached)

• Introduce yourself and talk about the project!
•What is the mechanism of locking?
•The design idea and sequence of database splitting horizontally and vertically
• How does Redis resolve key conflicts?
• How to ensure that the database and redis cache are consistent
• How to use the message queue in the project? What specific business scenarios are used?
• Which analysis tools related to JVM have been used? Are there specific performance tuning steps?
• How to do MySQL slow sql optimization in general? In addition to other methods to optimize?
• Online server monitoring indicators, which indicators do you think are the most important to pay attention to? why?
• What is the difference between soa and microservices?
• What technical adjustments will be involved in the evolution of a single-machine system to a distributed system? Please describe in detail from the front load to the back end.
• Design a spike system?

3. Summary of interview experience and sharing of learning route:

Summary of interview experience:
• Arrive the interview as early as possible. If you can interview earlier, the interviewer is more willing to pass you (just like the voice of China, it turns around like crazy at first).
• Mobilize your humorous cells during the interview and try to make the interview atmosphere a little more pleasant, so that the interviewer will remember you more deeply.
• When you say your strengths, you must use evidence, otherwise the interviewer will only be heard by the ears.
• Don’t answer hard questions that don’t. Be careful of pitfalls. You can say: “I’m sorry I don’t know this question, but if you let me come I will design..."
• The interview is actually a two-way choice. The interviewer is evaluating your performance. At the same time, since the interviewer also represents the company, his quality and questions are also aspects you should evaluate, so don't be nervous.
• Use the curtain to go through the knowledge you have summarized before each interview. I wrote notes of tens of thousands of words on the screen, and I took it out every interview, so I can basically answer the basics of the interview.

How to prepare

The first thing to declare is that the best "preparation" method must be to accumulate more in peacetime, not to avoid or be tricky when encountering problems, to think and solve in depth, and to accumulate the ability to solve problems in the process of solving each problem, and form your own Knowledge System. So how to prepare here is not about holding the Buddha's feet temporarily, but how to show your usual accumulation through preparation in advance, without affecting the interviewer's judgment of you because of your on-site performance.
• Think about the answers and even expand on the above-listed knowledge points. If you can know most of them, it is good to go deeper. This process is mainly to organize your own knowledge system.
• Recall and organize your resume and the "difficulties" and "highlights" in past projects. Because these are important points for distinguishing candidates, a qualified interviewer will definitely ask something like "What is the biggest technical difficulty you experienced in the project?", sort out your ideas, and not because of the long time during the interview. The details that cannot be recalled affect the interview effect.
• Be well-founded in the communication process, don't be too arrogant, and don't need to deliberately cater to the interviewer. The essence of communication is information transparency. We may not be able to be completely objective and fair in our work. However, insisting on our own objectivity and principles on technical issues is the character I think technical people should uphold. The persistence I am talking about here is not a stick. Stubbornly perceived, but a point of view derived from logical inferences based on commonly recognized facts. In the long run, this character will bring you enough technical influence and rewards.

Learning route:

Most occupations need a growth system to make people have aspirations. The architect is an important node that often appears on the growth path of the programmer group. Every good architect is an excellent programmer. However, it is not easy for a good programmer to advance to an architect.

For programmers with a certain amount of background R&D experience (especially more than 5 years of experience), the desire to become an architect is stronger, so they will spend more time learning and improving architecture skills, but they are often faced with objective constraints Many difficulties:

There is no access to the first-line actual architecture technology, especially the technical depth and difficulty architecture technology.

Do not know the specific background of the core technology point?

At the same time, there is an urgent need to master: the industry’s current mainstream dry goods technology + cutting-edge technology, Internet core technology hard skills + core soft skills, master the essence of architecture technology, know what it is, know it better, build the foundation of the architecture, go deep into the core, and hit the fault directly , Refused to be trapped.
So you need a clear learning route-this is a typical programmer's growth process:

Use Java---->In-depth understanding of Java to accumulate experience------>Independent design and analysis ability------>Universal hand!

Therefore, you must study: (with free study materials to receive) click to receive it: click here! ! ! Code CSDNInsert picture description here

One, open source framework analysis

Programmers deal with code every day. After several years of basic education and vocational training, most programmers can "write" code, or at least copy and modify code. However, there are not many who can read the code, and few can read the code and really understand the source code of some large projects. This also caused a lot of wrong way to look at the source code.

How to analyze the source code correctly? Our goal should be on the most commonly used frameworks:
Insert picture description here

2. Architecture basis

From architecture design to application layer tuning, and then a deep understanding of the underlying principles, a solid basic Java skills can turn oneself into a sweeping monk: memory model, concurrency mode, thread model, lock details, etc.
Insert picture description here

Three, high-performance architecture

We not only plan for the project, but also solve all performance problems. Only by in-depth study of the underlying principles of JVM, Mysql underlying optimization and Tomcat tuning, can we achieve the effect of knowing what it is and why. In addition to performance optimization, it can also provide general common ideas and considerations for program selection, helping everyone develop awareness, thinking and the ability to make various trade-offs when selecting a program.
Insert picture description here

Four, microservice architecture

About the choice of microservice architecture

In the right project and the right team, the benefits of adopting the microservice architecture will exceed the cost. Microservices architecture has many attractive places, but before embracing microservices, we also need to recognize the challenges it brings. Need to avoid "microservices" for the sake of "microservices". Microservice architecture introduction strategy-For traditional enterprises, at the beginning, you can consider introducing some appropriate microservice architecture principles to transform existing systems or build new microservice applications, gradually explore and accumulate experience in microservice architecture, rather than fully implement microservice architecture. Service architecture.
Insert picture description here

Five, teamwork

Development tool engineering

A software project management tool that manages project construction, reports and documentation through a short description of information. The programmer’s battle is often not a person’s battle. How can we efficiently remove duplication, conduct code reviews, adjust functions, and debug on a platform, so that we can proceed from step to step in a unified plan, and in the process of messy code stacking Find your own record. All this depends on effective tools.
Insert picture description here
Five, teamwork

Development tool engineering

A software project management tool that manages project construction, reports and documentation through a short description of information. The programmer’s battle is often not a person’s battle. How can we efficiently remove duplication, conduct code reviews, adjust functions, and debug on a platform, so that we can proceed from step to step in a unified plan, and in the process of messy code stacking Find your own record. All this depends on effective tools.
Insert picture description here

Six, B2C project actual combat

Project actual combat

If you want to base yourself on an Internet company and not be submerged in the Internet wave, the actual project development exercise is an indispensable skill, and it is also a measure of your own ability. How much is equal to how much return you get. A seemingly simple project demand map, how much can you know about the underlying principles and implementation principles? How much knowledge do you need to build a complete B2C project platform? All of this needs our consideration.
Insert picture description here
The above is the whole content of this article, I hope it will be helpful to everyone's study, and I hope you can support it.

Guess you like

Origin blog.csdn.net/a646705816/article/details/108692372