Lagou Java Engineer High Salary Training Camp

Don't make people feel that you only copy other people's code

The framework is the focus, but don't make people feel that you can only copy other people's code! Before the interview, I will read the resume to check the candidate's project experience in the framework. During the candidate's project introduction, I will also focus on the candidate's recent framework experience. The most popular one is SSM.

However, candidates who generally work within 5 years are mostly just able to "copy" other people's code, which means that they can expand new functional modules based on the existing framework and follow the process written by others. For example, if you want to write a functional module for a stock pending order, you will imitate the existing ordering process, and then from the front end to the back end to the database, write it in the same way, and at most change the function-related code points.

In fact, every one of us came here like this, but in the interview, if you only show this ability, you will be at the same level as most people. At this point, you will not be able to show your advantage.

We know that if you simply use the SSM framework, most projects will have pain points. For example, the database performance is poor, or the business module is more complicated, and the amount of concurrency is relatively high. The Controller in Spring MVC cannot meet the needs of jumping. So I usually ask: In addition to writing business code according to the existing framework, what changes have you made?

The answer I heard is: Redis cache has been added to avoid frequent calls to constant data. Or, in the xml of MyBitas, the select statement where condition has isnull, that is, if this value is present, a where condition is added. For this, a query condition without isnull is added to any where to prevent the statement from being used as a parameter. When it is null, perform a full table scan. Or, to put it simply, the amount of data returned asynchronously from the backend is very large and takes a long time. In the project, I increased the maximum time for asynchronous return, or compressed the returned information to increase network transmission performance.

For this question, I don't care what answer I hear, I only care that the answer is not logical. Generally, as long as the answer is correct, I will give "I have my own experience and a certain understanding at the framework level", otherwise, I will only give "The framework code can only be written under the leadership of the project manager, and I don't know much about the framework itself. ".

In fact, when preparing for an interview, it is not difficult to summarize the main points in the framework. I don't believe that everyone has accumulated nothing when doing projects. As long as you tell it, you can say that you have crushed nearly 70% of the competition in this regard. By.

Is the stand-alone version enough? Proper understanding of distributed

Don't just look at the stand-alone version of the framework, understand some distributed! In addition, when describing the framework technology in the project, it is best that you bring some distributed technology. Below I list some distributed technologies that you can prepare.

1. In terms of reverse proxy, the basic configuration of nginx, such as how to set rules through the lua language, and how to set session stickiness. If you can, look at the underlying nginx, such as protocol, cluster settings, failover, etc.

2. In terms of remotely calling dubbo, you can look at the knowledge points of dubbo and zookeeper integration, and then take a deeper step to understand the underlying transmission protocol and serialization method of dubbo.

3. In terms of message queues, you can look at the use of Kafka or any of the components. To make it simple, you can look at the configuration and working group settings. If you go deeper, you can look at the Kafka cluster, the persistence method, and how to send messages. Use long connections or short intercepts.

The above is just an example with 3 components. You can also look at Redis cache, log framework, MyCAT sub-database and table, etc. There are two types of preparation methods. The first is to know how to use it. This is relatively simple. It can be built into a functional module through the configuration file. The second is to read some low-level code appropriately to understand the protocol and cluster. Advanced knowledge points such as failover and failover.

If you can talk about the bottom layer of distributed components in an interview, you will get better evaluations, such as "understanding the bottom layer of the framework" or "experienced in the framework", so you can even go to the interview with the architect. Not to mention advanced development.

Don’t just know about additions, deletions, modification, and check, you have to understand performance optimization

Regarding the database, don’t just know about adding, deleting, modifying, checking, but knowing about performance optimization! In actual projects, most programmers may only use additions, deletions, modifications, and checks. This situation is more common when we use Mybatis. But if you behave in this way during the interview, it is estimated that your ability is about the same as other competitors.

In this regard, you can prepare the following skills:

1. SQL advanced aspects, such as group by, having, left join, subquery (with in), row to column and other advanced usage.

2. In terms of table building, you can consider whether your project uses the three-paradigm or anti-paradigm. What are the reasons?

3. Especially for optimization, you can prepare how to view the improvement points of SQL statements through the execution plan, or other methods that can improve SQL performance (such as indexing, etc.).

4. If you feel capable, you can also prepare some MySQL cluster, MyCAT sub-database and sub-table skills. For example, through LVS+Keepalived to achieve MySQL load balancing, MyCAT configuration. Similarly, if you can, also look at the relevant underlying code.

Even if your performance in the first three points is average, you can at least surpass nearly average candidates. Especially when you perform very well in SQL optimization, then when you are interviewing for advanced development, the database level must be up to the standard. The answer to four points is very good, then congratulations, your ability in database has even reached the level of primary architecture.

Prepare interview questions around data structure and performance optimization

At the core of Java, prepare interview questions around data structure and performance optimization! There are many interview questions on the Java core, but in addition to this, you should also focus on collections (ie data structures) and multithreaded concurrency.

Guess you like

Origin blog.csdn.net/weixin_52772147/article/details/112156048