With spring blossoming, the home-working mode of staying at home for nearly two months has basically come to an end. Enterprises resume work, everyone’s work and life can finally return to the right track, I believe that many friends have gone out of the house, to face the job-hopping season. Some quick friends have already received an Offer or two.

In fact, in addition to presentation skills and interview skills, nothing more than prepare from these aspects:

First, so how to write professional skills?

Ask yourself what you know, and then find out what the company needs. What I’m saying is that the average HR person may not know much about technology (of course, this is not the case for an internal interviewer), so he or she may be looking at your resume for specific keywords. Take a few days to study a skill the company is asking for that you don’t have, and show that you know it on your resume. For example, you could write something like this (the following is an excerpt from my resume and you can make some modifications to suit your needs) :

  • Basic knowledge of computer network, data structure, algorithm, operating system, etc

  • Java basics: Master

  • JVM Virtual machine (Java memory region, VIRTUAL machine garbage algorithm, virtual garbage collector, JVM memory management) : Master

  • High concurrency, high availability, high performance system development: Master

  • Struts2, Spring, Hibernate, Ajax, Mybatis, Redis, JQuery: Master

  • SSH integration, SSM integration, SOA architecture: Master

  • Dubbo: master

  • Zookeeper: master

  • Common message queues: Master

  • Linux: master

  • MySQL common optimization methods: master

  • Spring Boot +Spring Cloud +Docker: Understand

  • HDFS, Storm, MapReduce, Hive, and Hbase in Hadoop eco-related technologies: Understood

  • Python basics, some common third-party libraries such as OpenCV, Wxpy, WordCloud, Matplotlib: familiar

I interviewed for a senior Java development position in a company

Second, the interview process

One side (base side: approximately 60 minutes)

  1. To introduce myself

  2. The equals method is used to determine the equality of objects. How does Hashcode differ from equal?

  3. Java CAS algorithm?

  4. What about the G1 collector?

  5. Differences between HashMap, ConcurrentHashMap and LinkedHashMap

  6. How to use Map in multi-threaded environment, the principle of ConcurrentHashMap, how to lock ConcurrentHashMap.

  7. Multi-threaded concurrent synchronous implementation, there are two methods, each method has a part of the code and b part of the code, I want to let two threads respectively execute two methods, and let them run a part of the code and then execute together, how to achieve.

  8. TCP connection of the three-way handshake and four wave, wave four times last what is the role of an ack, why time wait, why is 2 MSL.

  9. Aio, NIO, BIO

  10. The difference between ReetrantLock and synchronized

  11. What are Java’s pessimistic lock implementations?

  12. What Java classes implement optimistic locking?

Two surface (two surface dead catch multithreading ask)

  1. What are the parameters of a thread pool? What’s the use of separation? What happens if the number of tasks exceeds the number of core threads? What is the blocking queue size?

  2. The database connection pool is introduced, and the underlying implementation is described

  3. The underlying implementation of hashSet, hashMap put operation process

  4. What is the underlying principle of HaspMap? What are the similarities and differences between HaspTable and ConcurrentHashMap?

  5. What are the differences between B+ trees and B trees?

  6. Algorithm problem, merge sort of a linked list, linked list may have rings

  7. How to implement a thread-safe counter?

  8. What is the implementation principle of AtomicInteger? How does it compare with the counter you designed? How does CAS implement atomic operations?

  9. What are locks in Java? The difference between synchronized and Lock? How are fair locks and unfair bottom layers implemented? AQS principle in detail?

  10. How do you tune the JVM in your projects?

  11. Let’s talk about GC. When will Full GC be conducted?

  12. What collectors do you know? CMS and G1. Talk more about the G1’s advantages

Three aspects (Redis and mysql are also required to master, interview is also required)

  1. See what sort algorithms are, and talk about complexity

  2. Hand rip merge sort

  3. What data structures does Redis have? What is the underlying code? What are the different encodings used for ordered lists?

  4. How many elements can redis hash data structure store

  5. How do YOU implement RPC?

  6. Mysql default storage engine? MyISAM, InnoDB, MEMORY

  7. What is phantom reading and how to solve it

  8. What are the transaction isolation levels? By what? What problems were solved?

  9. Optimistic and pessimistic locking usage scenarios

Four (here ask more technical questions distributed architecture Dubbo Spring Cloud Kafka database)

  1. Introduce the projects that have helped your technical skills the most, with emphasis on architectural design ideas

  2. How to implement distributed globally unique IDS?

  3. How does a dubbo producer publish a service, register a service, and how does a consumer invoke a service?

  4. What are the dubbo load balancing policies? What about consistent hashing?

  5. How is distributed session implemented

  6. Microserve your understanding? And the comparison between dubbo and Spring Cloud?

  7. How does Kafka ensure data reliability?

  8. How to resolve the data consistency between the primary and secondary databases? What are the advantages and disadvantages of the technical solutions?

  9. What do you know about the implementation of distributed locks? What are the mainstream solutions?

  10. Two features of Spring? AOP and the IOC

  11. Spring initialization process? Spring Bean lifecycle?

  12. How does the server handle concurrency when multiple RPC requests come in?

The interview advice is that we must be confident and dare to express. Sometimes it is difficult for us to master all aspects of knowledge in the interview. We should speak out our ideas instead of directly telling the interviewer that we do not understand, which can also be added.

The following job description is available.

We can dig out the following skill demand points:

  1. 3 years experience, familiar with common class libraries

  2. Familiar with Spring and Mybatis framework

  3. Familiar with distributed middleware (e.g., messaging, caching, etc.)

  4. Familiar with database, preferably NoSQL

  5. Experience with big data is a plus

The non-skill requirements are as follows:

  1. Be responsible and proactive

  2. Ability to work in a team is required

  3. Good coding habits and strong learning ability are required.

For advanced Java development, you can prepare the following topics, and you can use this as a reference to prepare some other topics:

  1. Vm memory optimization

  2. Database performance tuning

  3. Distributed high concurrency architecture

  4. Some popular components, such as Redis,nginx etc

  5. The use of big data directions

  6. The underlying implementation code for Java Core (such as collections or multithreading)

  7. Spring series (such as IOC, AOP, MVC,Spring Boot, Spring Cloud) aspects of the underlying implementation code.

Four, to what extent to prepare:

  1. It is best to say that you have actually used these techniques in the context of the project.

  2. Better to focus on performance tuning.

Using virtual machines as an example, here’s how to bring up this topic in an interview and what to say during the interview. Other highlights can also be prepared in this way.

The first: In recent projects introduced resume with such a description, “the memory requirements of the project is higher, while the distribution in the project object, but this project was assigned only 1 gb of memory, so in this project, I practice some skills, location for memory problems also did some tuning work”, so that the interviewer to see the description of the resume, The question comes naturally.

Second: There is always a “project introduction” in the interview, where the candidate is asked to introduce his or her latest (or most impressive) project so that they can share the description they have just given.

The third: You can use this topic when answering database or collection questions. For example, after answering JDBC questions, you can say “We will close the Connection object if it is good, otherwise the memory object will not be collected by GC”, or you can also use the following sentence when referring to collection types such as List. “If we use a good collection object, we will clear it in time. Otherwise, the collection will also have strong references to some objects, which will delay the collection time.”

Fourth: in self-summary, can say, have virtual machine tuning experience.

So, in an interview, what should you say?

  1. You can set it to NULL to undo strong references. Collection objects should be cleared as soon as they are used. Try not to use String (or other immutable) objects too often, which can cause memory fragmentation.

  2. It also demonstrates comprehensive capabilities in monitoring, positioning, and tuning. For example, Jprofiler+ JMeter can be used to tune JVM performance.

  3. You can even take a look at some of the underlying implementation details of the virtual machine, which can be mentioned in an interview to greatly improve your professional skills.

5, brush the question:

Now that is going to interview, then without brush, in fact home after the Spring Festival, where also can’t go, my own brush is a lot of interview questions, so during the interview process to accomplish know fairly well, basically be clear that the interview will be asked about what knowledge, what high frequency problem, so the brush problem is very important in the process of the interview preparation.

Vi. Suggest your own soft power (knowledge and technology)

The second key will own strength strong, whether you are fresh graduates, or work for several years, the school recruit or club, hiring is always strength high, that is your knowledge reserves, your technical level to meet the requirements, and the only way to improve its soft power is: learning.

Finally, I wish you all the best to get the offer!

Need more architecture information and video on cache breakdown, add wechat official account: Java Architect Union

Concerned public Account:

Xiaobian will also issue articles and technical explanation videos from time to time, thank you