Let’s talk about how I really feel
Programmer is really a profession that needs to carry lifelong learning to the end. Once you stop learning, you are not far from being obsolete.
Gold three silver four, gold nine silver ten job-hopping season, this is a thousand years of the same topic, every time to this time, a lot of people will be at the last minute, believe that not fast light. So, everyone will collect some interview questions.
But in fact, for some not job-hopping students, it is really necessary to read some big factory interview questions. Get to know the latest mainstream technology, see what big factories care about, and then improve in their own work, to sum up.
So we spent a couple of months putting together the Big Android questions (with detailed answers).
2017 — 2020 ByteDance Android Interview
First, computer basic interview questions
- Online Interview questions
- Operating system interview questions
- Database interview questions
2. Data structures and algorithms
- The oldest string without repeating characters
- Simplify the path
- Recover IP address
- The sum of three number
- The largest area of the island
- Search rotation sort array
- After the rain
- Reverse a linked list
- The two together
- Merges two ordered lists
- Merge K sorted linked lists
- The best time to buy and sell stocks
- .
Java interview questions
- object-oriented
- What design patterns do you know?
- What are the advantages of implementing the singleton pattern through static inner classes?
- What is the difference between static proxy and dynamic proxy?
- What is the difference between simple Factory, Factory Method, Abstract Factory, and Builder pattern?
- What are the differences between decorator mode and proxy mode? Compared to bridge mode?
- What is the difference between facade and mediation?
- What is a thread pool and how is it used? Why use thread pools?
- How many thread pools are there in Java?
- JVM memory area.
- The memory model of the JVM?
- Describe the principles of GC and the collection strategy?
- Class loader, parent mechanism, Android class loader.
- .
4. Android interview questions
- What is ANR and how can you avoid it?
- What are the Activity and Fragment life cycles?
- The Activity life cycle when switching between horizontal and vertical screens
- Defects and problems of AsyncTask, explain its principle
- With onRestoreIntanceState onSaveInstanceState () ()
- Process Priority in Android?
- Why does the Bunder pass object need to be serialized? The difference between Serialzable and Parcelable?
- The Context related
- New features of each Android version
- What classes are available for parsing XML on Android, and which are officially recommended? How do they work and how do they differ?
- App stability Optimization
- App startup speed optimization
- App Memory Optimization
- App drawing optimization
- Caton optimization
- View event distribution mechanism? How to resolve sliding conflicts?
- The type of touch event
- Event Distribution Process
- How to draw a View?
- Advantages and disadvantages of IPC mode and various modes in Android?
- Why Binder?
- Function and principle of Binder mechanism
- .
Bytedance Android Interview guide
Android Basic + Advanced
1. Start mode of Activity 2. Start process of Activity 3. Android Binder Application Layer Summary and analysis 5. Postdelay () 8. Why is the main thread not blocked by looper. Loop ()? Okhttp source code analysis 11 retrofit source code analysis……
LeakCanary 13.LruCache use and principle 14.ARouter principle 15. RxJava2+Retrofit2+OkHttp3 + Rxjava2.0+Retrofit+Okhttp(encapsulation use)+MVP framework setup Android plug-in and hot repair knowledge comb 20. Common memory leak problems and solutions in Android development 21. How to detect and locate Android memory leaks 22. Image occupied memory algorithm 23. Why do images need soft references? The VIEW interface in MVP mode uses weak reference 24. MVVM practice based on DataBinding and LiveData 25. Optimization of App stability 26. Optimization of App startup speed 27. Network optimization 31.App power optimization 32. Security optimization of Android 33. Why does WebView load slowly? 34. How to optimize a custom View
Second, Java foundation + advanced
1.HashMap 2.ArrayList 3.LinkedList 4. Memory model 6. Garbage collection algorithm (JVM) 7. The difference between garbage collection mechanism and calling System.gc()? Class loading process 9. Reflection 10. Multithreading and thread pool 11. Design patterns (six basic principles, design patterns commonly used in projects, handwritten singletons, etc.) 13. Breakpoint continuation 14.Java big Four references 15.Java generics 16. 17. Discuss the application of abstract class and interface from the design of Java container class
Data structure and algorithm
1. What are the commonly used data structures? Array 3. Linked list 4. Queue & Stack 5. Binary tree 6.HashMap 7. Figure 8. What are the sorting algorithms? 9. Search algorithm 10. String
4. Computer network
1.HTTP 2.TCP/IP 3.TCP three-way handshake and four-way handshake The entire process from entering the URL to rendering the entire interface, and what protocol is used in the process? 5. What is the difference between TCP and UDP? 7. The format of HTTP request and response packets, and common status code 8. How many HTTP requests can be sent over a TCP connection
How to do interview surprise, planning study direction?
The question set can help you to find out what is missing and make up for it. But if you just look at it, you don’t study it. This interview question will be of limited help to you. In the end, it depends on senior technical level.
There is a lot of information about Learning Android online, but if the knowledge learned is not systematic, and problems are only tasted, no further research, then it is difficult to achieve real technology improvement. It is suggested to make a study plan first and connect the knowledge points according to the study plan to form a systematic knowledge system.
Learning direction is easy to plan, but if only through fragmented learning, it will be slow to improve yourself.
I also compiled a set of notes on the core knowledge of Android development: