Java interview, what difficulties you encounter

Many Java programmers, some of the candidates in the major Internet's Java engineer jobs, often encounter the following puzzles.

These students say that they have made careful preparations, the Internet to collect a lot of Java interview questions.

However, the actual Internet companies to interview only to find, people ask, and you are ready to fundamentally do not add up, the interview scene often filled with awkward atmosphere, the final result of the interview is self-evident!

First to experience a real interview chain gun

Why, then, these brothers will this happen? The following Java and cadres Feng Guangzhou small series with a look!

First, let's look at a real second-tier Internet company site interview, the interviewer is to see how the manufacturers to ask questions.

In short, now some of the large Internet companies interviewer, when interviewing candidates, in general, to chain gun strategy to root out the technical level of a candidate.

For example, say look familiar to write a message-oriented middleware (MQ technology) on your resume. So we will probably have a similar to the following chain gun ended questions:

Talk about your company online production environment with the news of what is middleware?

That is what you online system technical challenges, why must the introduction of messaging middleware in the system?

Why are you messaging middleware technology selection is RabbitMQ?

Why not RocketMQ or Kafka? What technology selection is based on?

How do you ensure high availability of messaging middleware? After avoiding messaging middleware system failure caused total failure?

When using messaging middleware technology, how do you ensure delivery of outgoing messages will not be lost?

How do you ensure the delivery of the message to go out only one and only one, duplicate data does not appear?

If consumed duplicate messages how to ensure the accuracy of the data?

Online messaging middleware business with you when the need to guarantee the order of the message?

If you do not ensure message ordering, and why not? If I had a scene to ensure that the order of messages, you should be how to ensure that?

If the system goes down lower consumption, resulting in millions of messages in the messaging middleware in backlog, this time how to deal with?

Whether you come across online news backlog of production failure? If you have not encountered before, you think about how to deal with?

You use the RabbitMQ? Now tell me about RabbitMQ principle underlying architecture, logical architecture, physical architecture and data persistence mechanisms?

You RabbitMQ peak QPS is the number per second? How online deployment, the deployment of the number of machines, how to configure the machine?

You use the Kafka? That underlying architecture principles you talk about Kafka, and how data is stored on the disk, the overall distributed architecture is how to achieve?

Let me say how Kafka is to ensure high fault tolerance of data? Zero-copy technology is how to use the? How to optimize high throughput performance of producers and consumers?

Kafka did not read the source code. If you have read, talk about your understanding of Kafka source?

You use the RocketMQ? RocketMQ great feature is support for distributed transactions, you talk about the principles underlying his support for this mechanism in a distributed transaction?

RocketMQ source read it, talk about your understanding of RocketMQ source?

If you were to implement a distributed messaging middleware hands, how would you design the overall architecture to achieve?

The above is only part of MQ-related technical issues, in fact, a good interviewer's question, that is, from a technical, technical point, practice a few items to unraveling the questions.

Examine the breadth of technology

First, examine the integrity of the candidate's technical, because the work is the need to have some technical vision, we can not say that knowing messaging middleware, distributed cache but did nothing about it.

Similar to the previous entrance, you Chinese are particularly good, especially the results of the physical difference, that is not appropriate.

Therefore, engineers must first avoid their technical shortcomings, in particular three to five years of experience of the students, has been completely spent the early stages of white introductory rookie career of his life.

So, be sure to work in three to five years time, to ensure that their technology is absolutely no short board, the overall technology stack to more or less know something, not blind spots.

For example, I ask you now, your company have any business scenario is the use NoSQL? Now each company with domestic NoSQL technologies What are the selection? Specific NoSQL can solve any problem?

If you answer any of them, this is a typical technical shortcomings, at least you need to know about each technique is generally used under what circumstances, how to use, what the problem is resolved.

Therefore, the above said messaging middleware, distributed caching, huge amounts of data, distributed search, NoSQL, distributed architecture, high concurrency, high availability, high-performance technologies. Not to say that work really requires students to be proficient in a few years to the source level.

But that you work a few years later, there should be some technical breadth, broaden horizons of technology.

Examine the underlying technology

There are now many Internet giant will study basic skills, for example, the core principles of the Java virtual machine memory model, garbage collection, online FullGC Caton performance optimization, online OOM memory overflow issues you deal with.

Java Concurrency in the volatile, lock optimization, AQS source;

IO Netty behind the knowledge about the network.

In fact, this underlying technology, is a high-load line architecture design and development of large systems, it must have.

Because the underlying technology is not solid, middleware or many other high-end technology, it can not in-depth understanding of its principles.

Very often, the failure to solve the production line system, we need these technologies. Thus, taking advantage of the underlying technology is an excellent engineer must have qualities.

Examine the technical depth of

In addition, we will examine in depth the candidates usually work in the familiar as well as some common techniques.

For example, in the example, you use the Redis project or Elasticsearch.

As long as you used, and it is a project in your core technology, then we will use chain gun type of questions, all the details in depth, underlying, technical challenges that may be encountered in a production environment.

In short, the stress test is to use it in the end how deep you have mastered in this technical level, how strong practical experience.

A good interviewer, itself a solid technical foundation, is to ask a series of technical chain gun, like on top of the messaging middleware chain gun question.

And as long as the interviewer at a depth of more than technical candidates, then by deepening questions, we can examine out the technical depth of a candidate in their most familiar technology.

For example, say you are a master of technology has reached the level of the source code?

Whether a framework, or middleware-depth understanding of the source code underlying implementation, from source-level architecture make it clear that his principles?

Have there been highly available deployment of this technology line, carrying high concurrent access traffic?

Whether this technology online through a wide variety of production environments to solve complex technical challenges?

Whether based on this technology fall into your business systems, design a variety of complex systems architecture?

In this chain gun, you can visit a very good candidate for a mastery of technical depth.

Examine the technical depth of the interviewer is in large Internet companies for a senior / experienced candidates must be examined.

Because if a person more than 5 years, to apply for senior positions, then we definitely asked him to have a more in-depth study of at least one technical field.

For example, at least you have to read in depth the core source of a hot technology, there are certain technical skills, can solve some complex fault line.

Determine the breadth of technology you can use a variety of techniques to do the project, but the technology determines the depth of your technical knowledge.

You futurology how fast something new, online system broke down you can quickly locate and resolve, you can based on a deep understanding of the technology for the company's project design and development of complex and outstanding architecture out, it all depends in technical depth.

to sum up

Xiao Bian summary of what this paper we use a chain gun interview, how usually leads to the large Internet companies is to ask questions of the interviewer.

From then breadth of technology, the underlying technology, several technical depth perspective for a moment, we generally examine how technology candidates.

Know thyself, know yourself, the interview is true, you only really understand the interviewer's selection criteria, scope of the study, in order to better carry out targeted preparation, become walking "offer harvesters"

Published 752 original articles · won praise 106 · views 70000 +

Guess you like

Origin blog.csdn.net/qf2019/article/details/104372043