By the way, OPPO is quite strict about confidentiality. You need to apply for a temporary pass before entering the Houhai Excellence Center building. Before the interview, they had to register and tape the front and back cameras of their phones. Without further ado, the following is a two-part summary of the technical interview knowledge.

Java

  1. How to understand Java polymorphism? What’s the difference between overloading and overwriting?
  2. How about JVM memory allocation? Which parts are public and which are private to the thread?
  3. How to use the final keyword?
  4. How do deadlocks occur?
  5. How do I upgrade the database? SQLite add, delete, change and check the basic SQL statements

Android

  1. What is the classification of Broadcast? Order, disorder? Sticky, non-sticky? Local broadcasting?
  2. How are Touch events passed?
  3. How does Handler work?
  4. How many ways can ANR occur? How to analyze and solve ANR problem?
  5. What are the memory leak scenarios? How to use the memory leak analysis tool?
  6. How is startup optimization implemented and what tools are available?
  7. What are the common design patterns? Do you understand the chain of responsibility model?

conclusion

Now, looking back, the questions weren’t difficult, but they were related to each other in a lot of detail. From this point of view, there is also a need to focus on the basics in daily development. Especially for Android Developer with 1-5 years of development experience, most of the interviewers will examine whether the basic knowledge is solid, the ability to communicate and express, and the ability to summarize. Although the interview failed, it was a good experience.

For the answer to the question, I will take time to sort out the summary, please look forward to.

The 2018-10-22 update:

The answers to these questions have been sorted out in a personal book. If necessary, you can move to check.