preface

I worked for more than three years. My first job was in an outsourcing company, and my second job was in a SAAS platform company

The first company introduced me to the software development industry and gave me the basics.

The second company is so small that a lot of the work is done by one personI have learned everything from products to development, testing, operation and maintenance, and have a great understanding of the overall software development process.

However, for better development, I decided to go to a big company and offered to resign in early May

I left anyway, and then I interviewed a lot of companies, both big and small, and got enough experience to get started

I sent my resume to big companies and finally got a satisfactory offer (I have joined Ali) after visiting several companies. I am in the process of accumulation

Tired of enough experience before leaving the job, leaving a very important thing, they should carefully consider, from the career hair

Think carefully about exhibition and personal planning before making a choice.

Big companies test the basics and project experience, while small companies prefer project experience.

Here I sum up, give you a reference, I hope to help the comrades who are facing job-hopping.

Interview overview

1. Resume should be prepared, contact information must be correct, clear and eye-catching, project experience in reverse chronological order, pay attention to describe their responsibilities in the project, resume template as simple as possible, after all, most programmers still like simple and clear. 2. Recommend Boss Direct hire, I think it is very good (not advertising). 3. The general overall interview process is phone -> on-site ->HR -> wait. They will also need to discuss it with your previous interviewers and report it to your boss. If you are not in a hurry, you may need to compare yourself with other candidates. Therefore, the fact that they ask you to wait for news does not mean that you are finished. 5. Prepare to introduce yourself before the interview, about 1 minute is ok, you can write on paper, the telephone can read, and when you arrive at the scene of the basic also quickly recite your self-introduction. 6. Prepare a solid foundation. This is the root of everything. 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 when it comes to design questions. The interviewer is not trying to give you a few minutes to come up with a perfect architecture with a high concurrency and high availability design model. 9. Don't rush into the interview as a communication process.Copy the code

Knowledge that needs to be prepared

The following is more impressive in the recent interview questions, but not branch, because there is no meaning, roughly classified record.

At present only think of so much, but must know that these problems are only the tip of the iceberg, even if will also can’t how, the most

What matters is a solid foundation and 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, and ConcurrentHashMap. 4. Which performance of HashTable or ConcurrentHashMap is better in extremely high concurrency, why and how to achieve it? 5. What security risks will HashMap have if thread safety is not handled under high concurrency? What are the specific manifestations? 6. The limits 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 the differences. 10.Java serialization. 11. The difference between passing a value and passing a reference, how Java is, there is no passing a value reference. 12. If an ArrayList is deleted during the loop, is there a problem? Why? 13.@transactional under what circumstances annotations are invalid and why.Copy the code

Data structures and algorithms

1.B+ tree 2. Quick sort, heap sort, insert sort (actually eight sorting algorithms should understand 3. Consistent Hash algorithm and application of the consistent Hash algorithmCopy the code

JVM

1. Memory structure of JVM. 2. How the JVM method stack works, and how the method stack differs from the local method stack. 3. How JVM stack references relate to objects in the heap. 4. Learn about escape analysis techniques. 5. Common algorithms 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. 8. How the JVM determines whether an object should be GC, and what types of objects can be considered root. 9. The difference between strong and weak virtual references and what GC does to them. 10. Whether Java can GC direct memory. 11.Java class loading process. 12. The process and advantages of parental delegation model. 13. Common JVM tuning parameters. 14. Analysis of dump files. 15. Does Java actively trigger GC (no)?Copy the code

multithreading

1. How many ways can Java implement multithreading? 2. Understanding of Callable and Future. 3. What are the parameters of the thread pool? The process of creating a thread in the thread pool. 4. Functions and principles of the keyword volitile. 5. Use of synchronized keyword, advantages and disadvantages. 6. What are the implementation classes of Lock interface and what are the usage scenarios? 7. Use and implementation principle of reentrant lock, write copy process, read/write lock, segment (ConcurrentHashMap). 8. Pessimistic lock, optimistic lock, advantages and disadvantages, CAS defects, how to solve. 9.ABC how to ensure the sequential execution of the three threads. 10. What are thread states? 11. What is the difference between sleep and wait? 12. The difference between notify and notifyall. 13. Understanding ThreadLocal and its implementation principle.Copy the code

Database correlation

1. Common database optimization methods 2. Advantages and disadvantages of index, what field to build index 3. Database connection pool. 4. Common configurations of durID.Copy the code

Computer network

1.TCP and UDP are different. 2. Three handshakes, four waves, why four waves. 3. Long connection and short connection. 4. Is the connection pool suitable for long connections or short connections?Copy the code

Design patterns

1. Observer pattern 2. Proxy pattern 3. Singleton pattern, there are five ways to write, you can refer to the article singleton pattern five implementation 4. You can see which design patterns are used in SpringCopy the code

Distributed correlation

1. Control of distributed transactions. 2. How to design distributed locks? 3. How to design distributed session? 4. What are the components of Dubbo and what are their functions? 5. What are the load balancing algorithms used by ZooKeeper? 6. How dubbo uses interfaces to communicate.Copy the code

Cache related

1. Differences between Redis and memcached. 2. What data structures are supported by Redis? 3. Is Redis single threaded? Is all work single threaded? 4. How redis stores a String. 5. Deployment mode of Redis: primary/secondary, cluster. 6. Redis sentinel mode, how a key value is found in redis cluster where it is stored. 7. Redis Persistence strategy.Copy the code

The framework related

1. How SpringMVC Controller matches parameters to data from the front end. 2. How did Mybatis find the specified Mapper and complete the query? 3. How Quartz completes timed tasks. 4. Implementation of custom annotations. 5. What design patterns Spring uses. 6. What are the advantages of Spring's IOC? 7. How Spring maintains the beans it owns.Copy the code

Something newer

1. New features of JDK8, the concept of stream and its advantages, why it has such advantages. 2. How to design the double 11 transaction total panel to achieve high concurrency and high availability.Copy the code

Some tips

1. You can go to LeetCode to brush up on problems for a change. 2. Eight sorting algorithms must hand knock again (fast row, heap row is especially important). 3. Learn about emerging technologies. 4. 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. 5. Know the products of the company and the competing products.Copy the code

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. Actually,

Writing so much, just my own summary, not necessarily applicable to all people, I believe that after some interviews, we will have these feelings.

The above interview questions have been compiled into a PDF file, hoping to help you review and find a good job before the interview, and relatively save you time searching for information on the Internet to learn!!

Attached welcome to pay attention to my public variety number: IT resources of the home, scan the following two-dimensional code can receive more first-line large factory Java interview materials!

The last

Welcome to the comments section to communicate and improve each other; Sorting out information is not easy, if you like the article remember to point a zan ha, thank you for your support!!