Preface:

It has been nearly 3 years since I graduated in 2015. Recently, I interviewed alibaba Group (Cainiao network, Ant Financial), netease, Didi and Dianwuda, and finally received offers from Dianwuda and netease. Ant Financial failed the second interview, while Cainiao is still in process for a month. Finally, I had the honor to go to netease.




First, the overall interview matters

1, resume should be prepared, contact information must be correct clear eye-catching, project experience in reverse chronological order, pay attention to describe their responsibilities in the project, resume template as far as possible to choose concise, after all, most programmers still like simple and clear.

2, recommend boss direct hire, I think very easy to use (not advertising).

3, the general overall interview process is electrical > on-site >HR > waiting.

4. Don’t think it’s “GG” for HR to ask you to go back and wait for news. They also need to discuss with your previous interviewer and report to your boss.

5, before the interview ready to introduce yourself, about 1 minute can, it is best to write on paper, the phone can read, when you go to the scene of the interview can also recite the basic self-introduction.

Prepare a solid foundation, this is the root of all, no strength how useless.

7. During the interview, you can steer your interviewer toward what you know (I’ve met people who don’t ask what you know).

8. Don’t worry if you encounter design questions. The interviewer is not asking you to design a perfect architecture with a high concurrency and high availability design pattern in a few minutes.

9. There are all the offers, so don’t rush and make the interview a communication process.

Two, need to prepare the knowledge

Here are more impression in the interview in the near future, also won’t be the branch, because there is little meaning, roughly classified records, only think of so many, but must know that these problems are just the tip of the iceberg, even if will also not how, the most important, or a solid foundation, a clear head.

Java based

1, HashMap source code, implementation principle, JDK8 to do HashMap optimization.

2. How to expand HaspMap? Why are the sizes of 2 to the NTH power?

3. Differences between HashMap, HashTable, ConcurrentHashMap.

4. Which performance of HashTable or ConcurrentHashMap is better in extremely high concurrency, why and how to achieve it?

5. What are the security risks of HashMap if it does not handle thread safety under high concurrency?

The scope of the four modifiers in Java.

7. Methods in the Object class.

8. The difference between an interface and an abstract class. Note that interfaces in JDK8 can have implementations.

9. Two ways of dynamic proxy, and their differences.

10. Java serialization.

11, the difference between passing value and passing reference, Java is how, there is no passing value reference.

12, If an ArrayList is deleted during the loop, will there be a problem? Why?

13. When does the @Transactional annotation fail and why?

Data structures and algorithms

1, B + tree

2, quick sort, heap sort, insert sort (in fact, eight sorting algorithms should understand

3. Consistent Hash algorithm and application of consistent Hash algorithm

JVM

1. JVM memory structure.

2. How the JVM method stack works, and what is the difference between the method stack and the native method stack?

How JVM stack references relate to objects in the heap.

4. You can learn about escape analysis techniques.

5. The common algorithm of GC, garbage collection process of CMS and G1, which two Stop the world in each stage of CMS, whether CMS will generate fragments, advantages of G1.

6. Understanding, advantages and disadvantages of tag clearing and tag collation algorithms.

7. Proportion of Eden Survivor zone, why this proportion, and Eden Survivor working process.

How does the JVM determine whether an object should be GC, and what types of objects can be considered root?

The difference between strong and weak virtual references and what the GC does to them.

Can Java GC direct memory?

The process of Java class loading.

12. The process and advantages of parental delegation model.

Common JVM tuning parameters.

14, dump file analysis.

15. Is there any way for Java to actively trigger GC (no)?

multithreading

1, Java to achieve multithreading which ways.

2. Understanding Callable and Future.

3, thread pool parameters are what, in the thread pool to create a thread process.

4, volitile keyword function, principle.

5, the use of synchronized keyword, advantages and disadvantages

6. What are the implementation classes of Lock interface and what are the usage scenarios?

7, Use of reentrant lock and implementation principle, write copy process, read/write lock, segment (ConcurrentHashMap segment).

8, pessimistic lock, optimistic lock, advantages and disadvantages, CAS has any defects, how to solve.

9, how to ensure the sequential execution of ABC three threads.

What are the states of threads?

11. The difference between sleep and wait

12. The difference between notify and notifyall.

13. Understanding ThreadLocal and its implementation principle.

Database correlation

Common database optimization means of indexing the advantages and disadvantages of what fields to build an index database connection pool. Common configurations for durID.

Computer network

TCP and UDP are different. Three handshakes, four waves? Why four waves. Long connection and short connection. Is the connection pool suitable for long or short connections?

Design patterns

Observer pattern Proxy pattern singleton pattern, there are five ways to write, you can refer to the article singleton pattern five implementations to see which design patterns are used in Spring

Distributed correlation

Control of distributed transactions. How to design distributed locks. How to design distributed sessions. What are the components of Dubbo and what are their functions? What are the load balancing algorithms used by ZooKeeper? How Dubbo can communicate using interfaces.

Cache related

The difference between Redis and memcached What data structures redis supports. Is Redis single threaded? Is all work single threaded? How redis stores a String. Redis deployment mode, master/slave, cluster. Redis sentinel mode, how a key value is found in a Redis cluster where it is stored. Redis persistence strategy.

The framework related

How SpringMVC’s Controller matches parameters to data coming from the front end. Mybatis how to find the specified Mapper, how to complete the query. How Quartz completes timed tasks. Implementation of custom annotations. What design patterns Spring uses. What are the advantages of Spring’s IOC? How Spring maintains the beans it owns. Some of the newer things in JDK8 are new features, stream concepts and advantages, why there are such advantages. Blockchain to understand how to design double 11 transaction total panel, to achieve high concurrency and high availability

Some tips

You can go to Leetcode and brush up on it for a change. Eight sorting algorithms must be hand knocked over (fast row, heap row is especially important). Learn about emerging technologies. After the interview, the interviewer will ask you if you have any questions. Don’t be ok and don’t be silly to ask sensitive questions. Learn about the company’s products and competitive products.

conclusion

No matter which company it is, they are very focused on high-concurrency, high-availability technologies, they are focused on infrastructure, they are focused on JVMS. The interview is a two-way selection process, do not hold the mentality of fear to interview, is not conducive to their own play. It’s not just the salary you’re looking for, it’s whether you really like the company and whether you’re getting a real workout. In fact, I have written so much, just my own summary, not necessarily applicable to everyone, I believe that after some interviews, you will have these feelings. If these words can help you, that is the best, can not help as a record of my own. Finally, I hope everyone can find their own company, happy masturbation code.

The last

In order to make learning easy and efficient, we now provide a learning platform for you to accumulate experience in practice and master the principle. The main direction is JAVA architect, here you can learn JAVA engineering, high performance and distributed, simple to understand, performance tuning, Spring, MyBatis, Netty source code analysis and big data and other knowledge points, free large Internet JAVA technology video to share with you.




Welcome to work one to five years of Java engineers to join the Java architecture development: 697579751

This group provides free study guidance framework materials and free solutions

If you don’t know any questions, you can ask them in this group. There will also be career planning and interview guidance