In June 2020, I left Tencent after working for two years. My colleague helped me get the internal promotion of station B before leaving. After three interviews, I successfully entered station B with the offer of 26K on August 4th.

As a veteran tech nerd, I have always been fascinated by Manga and Nippon. Usually when I have time, I don’t like to go out. I just lie down and use B station to brush. But this time, B station can be my previous wish.

The interview,

Side 1 (7.11)

On July 10th, I had my first phone call with HR at Station B, and made an appointment with HR after learning about the company’s business, technology and team size. The interview was on the afternoon of 11th. On 11th, I arrived at Building 3 of Guozhengcheng Center in Yangpu station B, and waited for HR to pick me up by the robot in the lobby on the first floor. Then HR took me upstairs to the interview conference room and gave me two test questions, one technical and one similar to the civil service strategic examination.

There are ten technical questions, all short answer. Take a test of the JVM, pessimistic lock, Android’s four components, View event distribution, Eventbus, Http2.0, NDK, design mode, and finally with an algorithm topic finale, the overall feeling of the answer is ok, is the source code module answer is not too good. Look at the review books of source code and so on more later.

Side 2 (7.17)

After the first interview, HR asked me to go back and wait for the news. Finally, HR called me in the evening of 16th to make an appointment for a second interview and asked me if I was available on the morning of 17th. After agreeing to the second interview, I went to the headquarters of STATION B and started the second round of interview on the morning of 17th.

This time, an architect and a department manager came out and asked simple questions, but the only difference was that the questions on the other side were extended. In summary, there are almost two aspects of the extension of the JVM, flip linked list, HashMap, screen adaptation, parent-delegate mode, Jetpack, Fragment, Handler, memory optimization, and animation mechanism that have not been touched and answered. Go back and wait for it

Side 3 (7.26)

After waiting for a week, WHEN I thought I was going to get cold, HR called me again on the morning of 26th, saying that I had three interviews in the afternoon. Fate has a way of playing tricks, of turning things around that are technically impossible. On the third meeting, the HR came to me, along with a senior interviewer (later the head of my big department), and asked me: Do you know anything about audio and video development? I said I had, but I was not very familiar with it. During the course, I also talked about some thoughts on career planning and personal development.

After chatting with the big leader, HR talked about salary with me last time, and wanted to lower the price!! Is this going to be done? I thought to myself, the interview didn’t go so well. When it was over, I was told to go back and wait until next week.

2. Get the offer

On the morning of July 30, the HR of station B said that the interview had passed and the salary was 26K, 3K less than what I expected, but it was acceptable, so I agreed! Half an hour later, the mail came!

Iii. Reinterview of station B

B station interview overall feeling is still quite good, did not ask the very bottom, but the breadth of the interview is still some. I feel that the interviewer likes to ask about JVM and an audio and video very much. Most of the basic three questions are related to audio and video development. In the future, I will strengthen the learning of audio and video.

Bilibili – Android interface

One side

  1. Tell me about your projects
  2. Describe how the JVM loads class files.
  3. Explain the use of stack, heap, and method area in memory
  4. Pessimistic lock usage scenarios
  5. What methods does Activity B call back to when Activity A starts another Activity? What if Activity B is completely transparent? What if you start a Dialog?
  6. Describe the distribution mechanism for View events
  7. Briefly describe the principle of multiplexing
  8. Explain the difference between and use of global and local references in JNI
  9. How do singletons prevent reflection vulnerability attacks
  10. Describe the basic use of EventBus
  11. Take an array of positive integers, concatenate them into a number, and print the smallest number that can be expelled. For example, enter the array {32, 321}, and print 32132, the smallest number that can be formed.
Second interview

  1. What problems did you have during the project?
  2. Does garbage collection occur in JVM permanent generations?
  3. Given a single linked list (without the lead node) and a number K, flip the single linked list?
  4. How to expand HashMap? What is the load factor? Why so many?
  5. Toutiao’s lightweight adaptation solution: Tell me how it works
  6. In the case of multithreading, why doesn’t the class load repeatedly?
  7. What is Jetpack Lifecycle for?
  8. Talk about the three ways fragmentcan be toggled and the differences & usage scenarios
  9. How do you resolve memory leaks caused by handlers?
  10. Tell me about the interpolator & estimator
  11. How long can an Activity & BroadcastReceiver & Serice take?
On three sides

  1. You know whether it’s Kotlin or Java, the main entry point for a program to run is the main() method, so where’s the main method on Android?
  2. How to install APK on Android?
  3. Why can’t child threads update the UI?
  4. Do you know anything about audio and video development?
  5. What are the common digital audio encoding file formats, and briefly describe their characteristics
  6. Some common implementation schemes of audio codec are listed
  7. What is the basic principle of predictive coding
  8. Describe the basic code stream structure of MPEG video
  9. Describe the basic code stream structure of AMR

Iv. What I did before the interview

1. Sorting out theoretical knowledge

The interview tests your basic knowledge. Although I have worked in Tencent for two years, it is work after all, and I have forgotten a lot of theoretical knowledge. Therefore, I did a complete knowledge review for myself before the interview.

(Personal advice: Before going to the interview, it is necessary to do a complete knowledge review for yourself, not only to deepen the cognition of theoretical knowledge, but also to know which modules you do not understand, so as to deepen learning.)

Java basics: JVM, String, inner classes, polymorphism, abstractions and interfaces, collection frameworks (Hashmap, Arraylist), singletons, threads, Synchronized, Look locks, dynamic proxies, references

Basic aspects of Android: four components, View, process, Bitmap, screen adaptation, message mechanism, thread asynchronous, WebView.

Android extension: ART, Apk optimization, Hook, Proguard, architecture (MVC/MVP/MVVM), Jetpack, NDK development.

Android source code: Leakcanary, Eventbus

Design pattern: six principles of object oriented, factory pattern, singleton pattern, builder pattern, observer pattern, adapter pattern, policy pattern, agent pattern

Algorithms: sorting, binary tree, linked list, stack and queue, binary, hash table, heap, array/double pointer, string processing, dynamic programming

Network knowledge: Http (caching, Https, Http2.0), TCP (three-way handshake, four-way wave, socket), classloader

This is the Android review material I reviewed before the interview, which has been organized into a complete PDF. If you need it, there is a link below to get it.

2, brush

For the interview, brush questions is very important, brush questions can not only deepen your understanding of the technical principle, and if brush to the day of the interview questions blood earn (however, this possibility is very small), but brush questions or very necessary, at least to deepen their understanding of the principle, the bottom.

This is the interview question I scanned at home before I went to Bilibili after I left the job. It has been sorted into a complete PDF, and friends who need it can click (free to share) to get it

Android500 Advanced interview questions summary

Answers to interview questions

3. Perfect your resume

As we all know, the resume plays a crucial role in the interview process. A clear resume can help candidates have a very good impression in the mind of the interviewer. From this point of view, the perfection of the resume is very necessary.

How to write a resume?

1. Highlight your strengths as much as possible

Make a resume must learn to highlight key points, write their own advantages, such as your contributions in the last company, it is necessary to write in a prominent position to highlight, with color to deepen the best. If your advantage is your education, then your education should be on the first page, because the HR will only look at a resume for a few seconds. All you need to do is get them to look at your resume.
2. Describe what you did, not what you did

A lot of programmers will describe it in their project or tech stack like this: on a project, I was responsible for XXXX, such as refactoring, such as optimization. But in fact, what the interviewer wants to see is what kind of benefits and effects the refactoring and optimization bring to the project. If the performance is improved, the data and situation of the improvement should be described one by one, so the focus should be “what the project has achieved and achieved”.
Once or twice, you’ll have a great resume.

Five, the latter

Generally speaking, this interview can get the offer, also is inseparable from my previous efforts. In fact, the circle of programmers is very important, because the circle can let you less detours, broaden contacts, expand ideas, learn from the failure and success of others experience, obtain the latest experience and information, stay together to warm up! The height of the circle determines the height of life!

So, work hard! Share with them.

The above mentioned **@Android knowledge points to sort out review information +@Android500 high-level interview summary and other PDF**, all free to share yo, just need you to move a thumblike, support me once.

Click here to see the full content and share it for free