Tencent, Alibaba, ByteDance android development post recruitment experience

Coordinates Changsha

Three years of android development, Tencent, Ali, and ByteDance are all branches in Changsha

I sorted out the faces of the three companies. I usually have the habit of collecting and sorting, so I will send it out and share with you:

One, Java related

1. The difference between == and equals and hashCode in Java
2. The difference between int and integer
3. Talk about the understanding of java polymorphism
4. The difference between String, StringBuffer and StringBuilder
5. The difference between abstract classes and interfaces
6. The difference between Serializable and Parcelable Difference
7. The way and principle of converting string to integer
8. Under what circumstances will the object be processed by the garbage collection mechanism?
9. What are strong references, soft references, weak references and phantom references?
10. What is dependency injection? Can you say a few libraries for dependency injection?
11. What is the difference between a static proxy and a dynamic proxy, and in what scenarios?
12. Java's exception system
13. What is the recycling algorithm of JVM
14. Talk about the principle of generics and give examples.
15. Can you talk about the underlying implementation principle of common operations of HashMap?
16. What is the difference between garbage collection mechanism and calling System.gc()?
17. Tell me about the design patterns you know.
18. Talk about the thread creation method in java and the working principle of thread pool.

2. Computer network

1. The difference between Http1.1 and Http1.0 and 2.0
2. Http long connection.
3. Http request method.
4. Http message structure.
5. Https encryption principle.
6. How does HTTPS prevent man-in-the-middle attacks?
7. What is the difference between Tcp and Udp?
8. Realization of TCP reliable transmission principle (sliding window).
9. Why does tcp need to shake hands three times and wave four times?
10. The role and principle of Cookie and Session.
11. What happened when the browser entered the address to the feedback result?
12. How does the client verify the CA certificate?
13. Network request cache processing, how does okhttp handle network cache.
14. Please explain why Android adds a signature mechanism?
15. Authority management system (how is the underlying authority granted)?
16. How does the client determine that the message sent by itself is received by the server
...

Three, Android basics

1. What about the life cycle of the four major components?
2. What does the onSaveInstanceState() method do? When will it be called?
3. Tell me about the four startup modes and application scenarios of Activity?
4. Talk about the difference between Activity and Fragment?
5. Two ways to start Service? What's the difference?
6. How to ensure that the Service will not be killed?
7. How many forms of broadcasting? What are their characteristics?
8. Do you understand the principles of broadcast transmission and reception? (Binder mechanism, AMS)
9. What is the authority management of ContentProvider?
10. Describe the persistent storage of Android data?
11. What are the application scenarios of SharedPreferences? Precautions?
12. Do you understand the transaction operations in SQLite? How is it done?
13. The relationship between processes and threads in Android? the difference?
14. Why do we need IPC? Possible problems with multi-process communication?
15. Tell me about the drawing process of View?
16. Describe the View event delivery and distribution mechanism?

Fourth, Android medium and high-end

1. To make a ListView as smooth as possible, how do you optimize in your work
2. How much
do you know about Android security issues 3. How to reduce the APK package size?
4. What are the symmetric encryption and asymmetric encryption in the way Android interacts with the server?
5. What happens next when the device is switched between horizontal and vertical screens?
6. What are the two ways for Android to start Service? What are their applicable situations?
7. Please introduce the internal implementation of AsyncTask, and what are the applicable scenarios?
8. ThreadLocal principle
9. RxJava function and principle realization
10. What is ANR? How to avoid and solve ANR?
11 Inter-process communication mechanism, binder principle
12. The role of serialization, and the difference between the two serializations in Android.
13. In the allocation of process memory in Android, can you allocate a fixed amount of memory by
yourself 14. Big changes between Android 5.0 and 10.0
15. What image loading library have you used?

Five, Android third-party library source code

1. The underlying network framework: OkHttp implementation principle
2. What optimizations does OKhttp have for the network layer?
3. How does okhttp handle network caching for network request caching?
4. Load a 10M picture from the network, what are the precautions?
5. Network packaging framework: Retrofit realization principle
6. Responsive programming framework: RxJava realization principle
7. Picture loading framework: Glide realization principle
8. How does Glide determine that the picture is loaded?
9. How to control the size of Glide memory cache?
10. The process of loading bitmap (how to ensure that no memory overflow occurs)
11. The application scenarios of soft and weak references in Android.
12. LruCache principle
13. Comparison between Fresco and Glide:
14. How does Bitmap handle large images, such as a 30M large image, and how to prevent OOM?
15. Event bus framework EventBus implementation principle
16. Memory leak detection framework: LeakCanary implementation principle
17 、How to judge whether an object is recycled in leakCannary?
18. Dependency injection framework: ButterKnife realization principle
19. Dependence on global management framework: Dagger2 realization principle
20. Database framework: GreenDao realization principle
...

Six, performance optimization

This is mainly based on the question of the project you have done. The general interviewer will ask you what aspects of the project have been optimized. The common question is:
What are the ideas for optimization,
which technologies are used, and
what difficulties (problems) have been encountered and
how to solve
them? What experience is
mainly combined with my own project to answer. Remember not to dig holes for yourself. For example, if you haven't done this optimization before, if you say you have done it in order to express yourself, the interviewer can't answer the next questions. This is about integrity, you know~

End of sentence

As mentioned earlier, lz has the habit of collecting and sorting, so the previous interview questions have corresponding article analysis in my GitHub . Questions that everyone doesn’t know can find the answers in the blog posts in my GitHub , don’t forget For a star~

I always think that a technical interview is not an exam. I will recite the questions before the exam, send you an exam paper, and give you a notice when you finish answering it.

First of all, a technical interview is a process of getting to know yourself and the gap between yourself and the outside world.

More importantly, the technical interview is a two-way understanding process. Let the other party discover your shining points, and at the same time try to find the other’s shining points, because he may be your colleague or leader in the future, so the interviewer asks When you have any questions, don't say no, try to understand his work and the atmosphere of the team.

Looking for a job is nothing more than looking at three points: who you are with, what you do, and how much you give, and you have to divide the three in your own mind.

Finally, I wish you all find your favorite destination in this unfriendly environment!

Guess you like

Origin blog.csdn.net/Androiddddd/article/details/111599773