Programmer Interview Collection: Java programmer interview experience and question bank sharing!

I have compiled some interview questions that you have encountered recently for your reference. It will contain some small interview experience, if you are a face fighter, I hope to give guidance. You are not a big cow. If you are a big cow, you can ignore it.
Insert picture description here

The position I interviewed was a Java back-end development engineer.

1. Resume

The content that needs to be included in the resume should be your academic qualifications, your own technology stack, and some projects you have done yourself. The resume does not need to be too long, just two pages. It should focus on writing some frameworks you have used, some projects you have done, and your own gains, concise first.

Generally, interviewers won’t have a lot of patience. Look at the detailed description of your project.

2. Resume delivery

There are several ways of delivery, I believe you all know. Generally, it can be posted on the programmer's vertical recruitment website, such as Maimai, BOSS direct recruitment, pull hook, etc.

In addition, since I am not a big cow, if there is a headhunting hook, I try to ignore it, because I have learned a lot, so I try to submit my own resume to be more reliable or inferred.

3. Interview

Since I am a cross-city, the interviews I receive are usually phone interviews + video interviews. If the conversation is almost done, there will also be on-site interviews, so I don't stick to the form.

Generally speaking, the interview process is not much different. First introduce myself, focusing on some of my work experience and some of my main responsibility. This piece can be prepared in advance, but you don’t need to prepare it specially. Don’t make it like an endorsement, but feel unreal.

3.1 Technical interview

Generally, companies will have two to three rounds of technical interviews, and there may be more rounds of technical interviews in big factories, but the content of each round of inspections is not very consistent. Here are some of the problems encountered.

3.1.1 Java basics

At this time, some basic knowledge of Java will generally be asked, such as:

  • What is the difference between synchronized static modified classes and methods
  • HashMap principle, underlying data structure, rehash process, pointer collision problem
  • HashMap thread safety problem, why such thread safety problem
  • ConcurrentHashMap data structure, underlying principles, whether put and get are thread safe
  • Some content of Java IO, including NIO, BIO, etc.

3.1.2 Java advanced features

The question asked at this time generally includes some content of JVM and multi-threading. It is recommended that you take a look at the source code, which is roughly as follows:

  • Java thread pool construction method, the meaning of the parameters inside, and the principle
  • What problems volatile and ThreadLocal solve
  • The concrete realization of CAS in Java
  • The composition of the Java virtual machine, the life cycle of a Java object, and the contents stored in the stack and method area
  • The GC process of the JVM, including the analysis of some actual problems, such as explaining a phenomenon, allowing you to analyze what may cause such a problem, and how to tune the JVM parameters
  • The difference between synchronized and Lock, and the underlying implementation principle
  • Conditions triggered by Full GC and Minor GC
  • GC Roots selection
  • Usage scenarios of jmap, jstat, jstack, etc., MAT, etc.
  • The loading process of ClassLoader
  • CountDownLatch, CyclicBarrier, Semaphore, etc.
  • New features of Java 8 and more

3.1.3 Database

There are two kinds of databases here, one is generally MySql, and the other is NoSql database, including Redis, MongoDB, etc. Common questions are:

  • The difference between inner join and left join, etc.
  • SQL tuning, explain, profile, etc.
  • The difference between InnoDB and Myisam
  • ACID
  • The transaction isolation level of the database and what problems they can solve
  • Several data structures of Redis
  • Is Redis single-threaded or multi-threaded
  • Redis persistence
  • The meaning of pessimistic lock and optimistic lock
  • The leftmost prefix index, the data structure of the index, the clustered index, etc. (I haven't figured it out yet)

3.1.4 Framework
3.1.4.1 Spring

Because Spring is our commonly used framework, the content of this section will be asked more and more detailed.

  • Two major features of Spring (IoC and AOP)
  • Spring bean life cycle
  • How does Spring solve the problem of Bean circular references
  • The two implementation methods of AOP, and the difference between the two (actually, dynamic proxy is used here. The specific dynamic proxy is divided into two types, one is the dynamic proxy of JDK, which mainly uses the reflection of JDK, and the other is CGLib. The difference between the two can be searched by yourself, there are more articles)
  • AOP general usage scenarios
  • Spring's transaction principle

3.1.4.2 MyBatis

This question is simpler:

  • The difference between $ and #
  • The difference between MyBatis and Hibernate
  • Source code, generally less asked

3.1.4.3 Dubbo

Because I usually use Dubbo, I will ask:

  • Principle of RPC
  • How does Dubbo complete remote calls
  • How to tune Dubbo
  • Dubbo's communication protocol
  • How Dubbo achieves load balancing

3.1.4.4 ZooKeeper

Usage scenarios of ZK

ZK's election mechanism

ZK node type

Consistency Hash principle

3.1.5 Data structure and algorithm

This content is the basis. If the interviewer doubts your ability, he will usually ask about this part of the content, such as tree traversal and quick sorting.

3.1.6 linux

Generally, I will ask about the use of some commands, and then I will give you a practical scenario that allows you to use commands to troubleshoot problems. This is not very familiar to me and needs to be strengthened as soon as possible.

3.1.7 Comprehensive questions

The interviewer will generally ask in-depth questions about this topic. For example, how to design a panic buying system, String to Integer, etc. What needs to be tested in this part is a person's on-the-spot adaptability, as well as the accumulation of system design ability in normal work, and whether the problem is thoughtful. It is also possible to make detailed inquiries about the design of the system written on your resume, so when you write your resume, you must not write down the content that you are not familiar with, and you can’t explain it clearly. This will generally be passed directly. Drop.

Of course, I will also ask some commonly used maven commands and design patterns (the singleton pattern is more frequently asked in this part).

3.2 HR interview

In this area, I will generally ask some reasons for resignation, of course, I will also ask some problems encountered in daily work and how I solved it. If you talk well, HR will talk to you about salary at this time. When asked about the current salary, I am currently telling it truthfully. Here, there may be many people who report higher. If it is similar, the problem is generally not big. If it is too exaggerated, there may be problems in the follow-up, such as asking you to provide bank records. If there is too much difference, there may be integrity problems.

The other is the issue of salary increase. My principle is to consider the size of the company in advance, and then combine the current salary, and generally set a range (later found that this is very bad, and it will be passive). It looks like a 30% increase on the basis (may vary from place to place, but this will be safer). If you are good at talking about this, please ignore it.

In addition, the most important thing is probably the payment of five social insurances and one housing fund. Generally small companies will let you choose whether to avoid tax or not, but there is still a bit of knowledge here. If you avoid tax, you may have very little provident fund. At present, I have encountered two kinds. One is to pay you the provident fund according to a fixed amount every month. Whether your future salary increases or not, it has nothing to do with the provident fund; the other is to pay you according to a certain amount, generally 7% of the salary is paid to you, or according to the minimum standard. In this case, please carefully consider whether you need to accept the offer.

Finally, you can also ask about welfare, such as some year-end bonuses, annual leave, and overtime transfers.

4. Finally

The most important thing in an interview is honesty. If you don’t know how to say no, then you can try to express some of your own ideas. If you don’t have ideas, you can also say that there is no perfect person, and it is impossible to cover everything. Just reveal it.

Before the interview, you must be fully prepared. For example, half a month or a month in advance, you should start to read some basic content, make a summary of your current work, and find your own highlights. Highlights are very important. In general interviews, with highlights, you will be able to take the initiative in the interview process.

Finally, when the new job is about to settle down, I wish you all find your favorite job.
Insert picture description here
If you want to quickly learn about this industry, you can comment and reply: Java, you can get the latest full set of Java learning materials + source code + project + notes for free to help everyone learn Java.

Guess you like

Origin blog.csdn.net/xiaoxijing/article/details/109678444