After graduating in 2015, I entered a small company as an intern. After studying software development in school for three years, I still want to find a job in the Internet industry, so that I can put what I have learned into practice and give full play to my strengths. It was not until March of 2018 that I quit my job and went to the north for an interview and got the offer successfully. After the interview, many people asked me, “Why can you get the offer from Ali? You are just a young man who has just graduated and worked for two years. At that time, I just smiled at them and replied in a modest tone: Good luck good luck! But in fact, it is not so simple as luck. Without strength and confidence, do you dare to go to Ali for an interview? I think the unanimous answer is the same, “Dare not go”! Why would I go to Ali with two years of experience? I have a card.

Now let’s talk about some of the interview experiences I have met, hoping to give you a reference to the young partners seeking new opportunities. I have met with 5 companies and received 4 offers, which should be considered a success.

Due to a variety of reasons, the companies mentioned in the blog are all marked by code names, and I can only tell you the interview questions, other details are inconvenient to reveal, I hope you understand.

The interview questions

A company

  1. Write a Java use of synchronized.

  2. What are the parameters in Java for setting maximum and minimum heap memory?

  3. What does volatile do?

  4. A design problem

  5. Multiple threads are reading and writing at the same time. The number of readers is much larger than that of writers. How do you think to solve the problem of concurrency? What kind of lock would you choose?

  6. Does JAVA AQS understand what it does?

  7. Aside from the synchronized keyword, what do you do to keep threads safe?

  8. When is the volatile keyword needed? Is it thread-safe?

Company B

Question 1: “Please introduce yourself”

Question 2: “Do you have any hobbies?”

Question 3: “What aspects of your job do you think are the most important?”

Question 4: “Tell me about your weak points”

Question 5: “Tell me about a time when you failed”

6. “Why did you choose our company?”

Question 7: “What foreseeable difficulties do you have with this job?”

8. “Why should we hire you?”

10. “Why did you leave your previous job?”

C company

  1. How does Mybatis prevent SQL injection

  2. Hibernate’s caching mechanism

  3. Hibernate Level 1 cache

  4. Hibernate Level 2 Cache

  5. What kind of data is appropriate to store in the second-level cache

  6. Differences between Mybatis and Hibernate

  7. Usage scenarios for Redis

  8. How do you adjust the parameters of Tomcat?

  9. If you have a lot of data inserted into MYSQL, which method do you choose?

D company

1. What GC strategies do you know or use online? What are its advantages and what scenarios are it suitable for?

2. How many JAVA class loaders are included? What is the father-son relationship between them? What does parental delegation mean? What are the benefits?

3. How to customize a class loader? What have you used or in what scenarios do you need a custom classloader?

4. What are the parameters for heap memory Settings? 5. What data is stored in Perm Space? Does it cause OutOfMemory? 6. In gc, what is the order in which objects are moved in memory Spaces?

7. Have you ever encountered OutOfMemory problems? How did you deal with the problem? What are the gains from the process?

8. What changes have Perm Space made after 1.8? Is MetaSpace size unlimited by default? Or are you going to specify the size in some way?

9. What does Jstack do? Jstat? If an online application periodically freezes and you suspect gc is the cause, how do you troubleshoot this problem? What part of a thread log do you usually look at?

10. Have you ever encountered a StackOverFlow exception? Under what circumstances would you guess to be touched? How do I specify the stack size of a thread? How much do you usually write?

E company

Low briefly synchronized? The Object; The Monitor mechanism;

● Brief rule of happen-before;

● JUC and Object; What are the differences between Monitor mechanisms? Brief introduction of AQS principle;

● Brief DCL failure reasons and solutions;

● Brief introduction of NIO principle;

● Which parts of the JVM runtime data area are composed of, their respective roles;

● What are the GC algorithms? What are the GC collectors?

● Describe each stage of class loading process; The class; What models does loader have?

● Brief introduction of common JDK command-line tools;

● Brief bytecode file composition;

● Talk about how you normally optimize for a specific SQL;

● what is the storage engine of mysql?

● GC: memory model;

● GC: garbage recovery;

● Multithreading: how to achieve a scheduled scheduling and cyclic scheduling tool class. However, when the submitted task cannot be handled, how should the rejection mechanism handle it? What rejection mechanisms do thread pools have by default?

● Multithreading: How to implement a ThreadLocal;

● Tell me about a thread-safe queue you know;

What is the implementation principle of Atomic packages?

● How CAS guarantees atomicity;

● String analyzes how much memory subString used for 1000 cycles;

When I interviewed formula E, it was the most difficult. I asked many questions, but he would ask all the questions he thought of. Because there were so many questions, I could only list a few from memory, and I hope you can understand.

Five skills to Impress an interviewer

1. Quantitative analysis

Quantitative analysis is the analysis of quantitative characteristics, quantitative relations and quantitative changes of social phenomena. Data is an important part of many organizations, so your ability to organize, analyze, interpret, and present data is important. Whether it’s building an app or finding different ways to engage users. In particular, recruiting companies value organizing data and the ability to organize based on data. If you have the ability to mine data and have insights of your own, you will have an advantage over the competition. (You can bring data analysis projects you’ve done.)

2. Excel

What are the most important tools in management data analysis? Excel. Excel comes up a lot in the workplace, and companies don’t take the time to teach you how to use it. Therefore, if you can master Excel, you will also have an advantage in the admission process.

3. Think creatively

With the pace of change in the corporate world today, employers are interested in candidates who can innovate and transcend the status quo. They want their employees to be expansive, restless, and ready to share their ideas with other employees from day one, ideally to improve the company’s current work system. But creative thinking is a little hard to learn.

4. Communication skills

In general, hiring companies are looking for employees with strong communication skills. Because the company needs you to be able to effectively communicate with customers by phone, email and daily life, your words and actions will represent the company’s image. More importantly, the company expects you to be able to express some of your ideas in concise and professional language. So, during the interview process, show the recruiter how good you are at communicating.

5. Humility

Humility may seem strange to some, but it’s one of the most important skills recruiters look for. Of course, hiring companies need people who are confident, passionate and willing to learn. During the interview, if you are asked to share your thoughts or ideas, don’t be afraid to do so. If a mistake is pointed out, accept it humbly. Ask a lot of questions about the company and the job you are applying for.

Why I interviewed four of the five companies admitted it, the above five skills should not only have, but also good technology, or you do not want to pass the above interview. So where do you learn to acquire strong skills and strong courage? The following is that I learned this curriculum system, it is I have such strong technology and strong courage.

Recommend an exchange learning group: 251981998, which will share some veteran architects recorded video: Spring, MyBatis, Netty source analysis, high concurrency, high performance, distributed, microservice architecture principle, JVM performance optimization these become architects necessary knowledge system. You can also get free learning resources, which have benefited a lot at present. The following course system map is also available in the group.

Recommended course system:

First, performance tuning



Second, source code interpretation



Three, distributed



4. Micro services



5. Team development



Six: B2C mall project combat