preface

Words do not say much, but first introduce yourself or want, the last flow 985 university undergraduate course, automation professional, self-study Java and back-end. Listen to a friend say byte this year backend delivery person is very many, the competition is relatively big, MY undergraduate course is not CS, also just do innovation and entrepreneurship project time contact Java backend, later see have say client 0 experience, let others help push once, did not expect all around!! Ha, ha, ha

To share my interview process:

One side (about 45min) :

  1. Introduce yourself. (I just mentioned my own experience and projects)

  2. I asked how I learned Java and did any projects related to Java.

  3. The difference between processes and threads.

  4. HTTP request three handshakes, four waves. Why four waves.

  5. HTTPS working principles and processes.

  6. What are the common network status codes? What type of error is 50X?

  7. Java ThreadLocal source code, an example of a practical application scenario.

  8. Java memory leaks, why non-static inner classes can access members of outer classes.

  9. Algorithm: frog jump steps, how many kinds of jump. (Later asked me how I thought about this algorithm, how boundary conditions were designed, etc.)

Note: this interview process is relatively long, the content is various, in the article I basically outlined, the article in the interview question complete version and my personal summary method experience (interview study and brush notes), have sorted out a complete PDF version, there is a need to pay attention to my public account future have light free to share with you.

Second face (60min) :

  1. Introduce yourself (why do YOU want me to introduce you? Probably a different interviewer)

  2. Have you studied data structures and operating systems? How do you feel about it? (Self-taught, attended some school courses)

  3. What are the main differences between Java 1.8 and HashMap?

  4. What is the relationship between hashCode() and the equles() method, and why rewriting the former requires rewriting the latter. What’s wrong with not rewriting it.

  5. Java memory model, memory sharing and other series of problems. The interviewer waited until I had finished the question and told me that I was wrong and instructed me to give the correct answer.

  6. The problem with thread locking, synchronized keyword, and what conditions cause deadlocks.

  7. Algorithmic problem 1: Let me write several production consumer models. (I’ve written three implementations.)

  8. Algorithm 2: Comparison of version numbers, such as 1.7.93 and 1.8.1.

I feel that the second officer attaches great importance to the foundation of Java, and the questions asked are also from the simple to the deep, according to your answer to choose the next question.

Three sides (60min) :

  1. The flow of Java class loading, what the parent delegate mechanism is, and what problems it’s supposed to solve.

  2. The principle of Java GC collection, generation and age division mechanism.

  3. How well Java design patterns are learned, the difference between static and dynamic proxies, and the advantages of each.

  4. Hand rip three Java singleton writing methods. What’s the best way to write it, and why? (This question is not very well answered)

  5. Given a length of n steel bar, and a price list P, P lists the price per inch of steel bar, the length of N steel bar cutting into a number of short steel bar for sale, seeking a steel bar cutting scheme, so that the maximum benefit, cutting process without cost. (Standard dynamic programming example in Introduction to Algorithms.) Fortunately, the interviewer didn’t bother with the algorithm and asked a typical dynamic programming question.

I feel that the three interviewers are the most serious among all interviewers, asking more basic questions and thinking more deeply.

Four Sides (HR) :

HR probably asked about their career development direction, what is the plan for the future

Summary of Interview Experience

I believe you are all curious about how I, who was born out of non-professional classes and taught myself Java backend, went from outsourcing to Bytedance step by step.

Note: the following is mainly my personal summary method experience (interview study and brush notes), are organized with a complete PDF version, there is a need to pay attention to my public account future light free to share with you.

1. Create your own road map and learn to fill in the gaps

  • Concurrent programming: multithreading, high concurrency, CAS, locking, containers, thread pool bottom layer
  • Performance tuning: Mysql, IO and network tuning, algorithm tuning, JVM
  • Spring family bucket: Spring, SpringMVC, MyBatis, IOC, AOP
  • Cache database: Redis, mongoDB, MySQL
  • Distributed & Microservices: SpringBoot, SpringCloud, Docker, Maven

2. Identify your weaknesses based on the road map you laid out

JMM memory model

  • Basic theoretical knowledge of modern computer models
  • What are Threads for in-depth understanding of Java threads
  • JMM Volatile Cache consistency protocol
  • Instruction rearrangement, visibility, atomicity, sequence consistency, happens-beofre detail as-if-serial

Mysql performance tuning

  • Mysql index data structure in depth
  • B + tree
  • Hash
  • Red and black tree
  • Mysql execution plan and index explanation
  • Explain in-depth use of tools
  • Index optimization best practices

Zookeeper

  • Zookeeper Quick Start
  • Zookeeper multi-node cluster deployment
  • Typical Zookeeper application scenarios Actual deployment
  • Service registration and subscription
  • Distributed configuration Center
  • A distributed lock
  • This section describes the ZNode, Watcher, ACL, and client APIS in Zookeeper
  • Zookeeper client server source code analysis
  • Zookeeper migration, capacity expansion, and monitoring

Dubbo

  • Dubbo enterprise application practices
  • Dubbo call module details
  • Dubbo fault tolerance mechanism and high scalability analysis
  • Basic principle and implementation of Dubbo RPC protocol
  • Dubbo design principle analysis and source detail
  • Dubbo load balancing policy analysis
  • Dubbo control background management and deployment details

Redis

  • Redis core data structure analysis
  • Typical application practice of Redis in microblog, wechat and e-market view
  • Redis persistence mechanism and security mechanism details
  • Redis master/slave and Sentinel architecture in detail
  • Redis Cluster architecture actual combat and principle analysis
  • Cluster data sharding algorithm and dynamic horizontal expansion
  • Jedis, Redisson client source analysis
  • Redis high concurrency distributed lock combat
  • Redis cache penetration, cache invalidation, cache avalanche actual parsing
  • Redis Bloom filter implementation
  • Redis cache design and performance optimization

This interview document, of course, more than these contents, in fact, like Spring Cloud, design pattern, Netty, distributed, data structure and other parts of the interview content are involved, because of the length of the article, not all elaborated here, need to pay attention to my public account future youlight free download complete version.

Write the last words

The last point I want to emphasize for the interview is that your attitude is really important, which is the key to determine your performance in the interview process. If you can’t play well, you may lose the offer due to a small mistake, so you must pay attention to it. Another point to remind, full review, is the key to eliminate your nervous state of mind, but you review enough, the natural interview process will be much more confident. Remind again, if you want to learn, but helpless in no dry goods learning materials, all of the above information content can be free to share with you, pay attention to my public number future light all of the above information one-time package away!