This is the first day of my participation in the August More Text challenge

preface

Recently I went out for an interview and found a very serious problem. The knowledge point asked by the interviewer was clearly known to me, but I couldn’t get back to it. Either I don’t know where to start, or what I think in my head doesn’t match what I express.

So there is this article interview summary and reflection.

First of all, summarize several points of their own shortcomings:

  • Why can’t you answer when you know?

  • Why come back to express the result is not satisfactory?

  • Why many knowledge points will string?

  • Why do interviewers keep asking questions?

In fact, these problems are different for each person’s situation and background, and their thinking about the problem is also different. Here is only a summary of the problem description, I can not answer the answer, but also ask you to think for yourself.

Here are some of the questions interviewers ask about technology and projects. Here are some questions you can answer from real job interview scenarios.

PS: I would like to introduce you to the position of Java development engineer, except for the basic Java skills, other skills are common to the backend.

A problem

  • What is the difference between ArrayList and LinkList? (Implementation, thread safety, CRUD time complexity)

  • Implementation of HashMap and is it thread safe? (Open addressing array + linked list/red-black tree)

  • What are the differences between HashMap, HashTable and CourrentHashMap and their business scenarios?

  • What are the differences between Synchronized and Volatile?

  • The difference between Get and Post?

  • Implementation of Delete method?

  • Which request methods are idempotent?

  • How do you understand Restful API design?

  • TCP three-way handshake and four-way wave.

  • Excessive TIME_WAIT on the server

  • Redis distributed lock implementation and use scenarios?

  • Redis expired implementation?

  • Redis data persistence? (Three ways)

  • Redis basic data structure and usage scenarios? (Zset Weibo hot, priority queue?)

  • Mysql storage engine and features? (Innodb, MyISAM)

  • Mysql transaction and lock usage? (Table lock, row lock, pessimistic lock, optimistic lock)

  • Mysql transaction isolation level ACID? (Dirty read, unrepeatable read, phantom read)

  • Str, enumeration, fuzzy query? (union index, left-most prefix match)

  • Mysql index base implementation B+ tree? (B+ tree difference)

  • Why use message queues? (Peak filling, project decoupling)

  • RabbitMq delay queue implementation? (Message processing failed -> dead letter queue)

  • How does RabbitMq ensure that messages are consumed and re-consumed? (Mark when consuming messages)

  • Why is RabbitMq safe and reliable? (Message confirmation mechanism)

  • What valuable things and unforgettable problems did you do in the project? (Shows the ability to find and solve problems)

  • Do you have any technical points that I haven’t asked you about that I think we can talk about? (Maybe the interviewer thinks you’re good enough to reveal a technical advantage)

Second interview questions

  • What are the differences between internal projects and business projects? (Stability is the premise, the former focuses on development efficiency, the latter focuses on high concurrency and high availability)

  • Give a brief introduction of the major projects and responsibilities of your current job. (Examine the roles in the real project, the overall language logic, and understanding of the project)

  • What do you think are the difficulties and solutions of this project? (Test your ability to identify and solve problems)

  • What was your most fulfilling project? Tell me about it? (The macro aspect elaborates the problem, the detail aspect reflects the value, reflects the understanding of business, and reflects the thinking of combining technology with business)

  • What do you think of Python and Java? (Scripting language VS compiled language, ecological description of language)

    • Why is Python slower than Java?
    • Why switch from Python to Java?
    • Java versus Python ecology?

conclusion

The answer to the technical question is actually quite comprehensive on many blogs, so I won’t go into details here. But it should be noted that when answering questions, people must sum up and think by themselves; Answer according to your own understanding. We must pay attention to the answer when thinking clearly, not inconsistent, confused thinking.

The most important thing here is that after reading other people’s blogs, be sure to organize and describe them in your own language.

We should pay attention to the accumulation of projects and think about the original intention and purpose of projects. Learn more about the value brought by the project, constantly drive myself to improve the project, explore the technology and apply it to the actual project.

The answer about the project here must be from the usual accumulation. Everyone should have his own thinking about work.