1. Ali.
- One side (3/8 21:17, phone, 61 min 47 SEC)
- To introduce myself
- The project history
- The difference between MySQL and MongoDB
- What is the difference between a relational database and a non-relational database
- Why is a non-relational database appropriate for mass data
- Why do graduate students study communications, but not computers
- Have you taken or self-taught any computer courses? Are you familiar with computer networks
- Do you know anything about HTTPS and have you written the relevant code
- The boss has 2000 yuan to me and my classmates cents, first of all, I put forward the cents plan. If the student does not agree, the total amount will be changed to 1000 yuan, and the student will put forward the plan of sharing. If I don’t agree at this point, we each get 100 yuan. Could you please tell me how I should give the money plan at the beginning?
- Suppose a thread is fetching messages from a queue. How do I stop this thread
- Read what source code, respectively said about Android and Java
- Read the Android open source library source code
- What problems did you encounter in the project
- Several impressive learning experiences
- See you have used Ubuntu, do you usually use Linux, are you familiar with Linux, what do you use it for
- Do you have any questions
- Second interview (3/12 20:30, phone, 82:33)
- Introduce the project
- A series of questions were asked about the details of the process of configuring the device to the network in the project
- The data formats used to communicate with the equipment in the project, what other data formats can be used, and what optimizations have been made
- Design a variable length transmission data format
- UDP and TCP.
- Introduce the MQTT protocol (one of the protocols used in the project)
- Are there any monitoring logs in the project
- What is Elasticsearch (because I said so)
- The realization of the CrashHandler
- Designing a log monitoring and uploading module asks a lot of details and considerations in depth
- Android changes from version to version
- Introduce the Flutter framework
- How do you learn new knowledge
- Three sides (3/21 15:31, phone, 30 mins 57 SEC)
- Asked a lot of details about the project, about the encapsulation of basic modules like local storage, music playback, etc
- Has the music player module open source out
- What problems were solved in the project
- What has changed about HTTP/2.0
- There are two columns (similar to waterfall flow) on a mobile phone screen. You are given some items with different heights. How can you place them to minimize the overall height of the two columns?
- HR interview (3/28 20:16, phone, 14 min 47 SEC)
- Why did you come to Ali?
- What advantages would bring you to our department
- Do you have any hobbies
- Experience solving difficult problems
- What setbacks have you encountered
- Choose Shanghai or Hangzhou
2. Headlines (One and two: 3/23 evening, live. Three sides, HR side: 3/26 PM, on-site.)
- One side
- To introduce myself
- The project history
- What about local storage in the project
- How should classes that access local storage be designed
- Explain my understanding of BInder
- What are the nodes of BInder red-black trees distinguished by
- SurfaceFlinger, VSYNC
- SurfaceView principle
- HTTP Response Content
- Retrofit is implemented internally
- Principle of dynamic proxy
- Internal implementation of EventBus
- Handwritten binary search
- Second interview
- What books have you read?
- Let’s talk about the author of “Java concurrent programming practice”, who do you know, who do you like, will you pay attention to it
- HashMap version changes and principles
- Handwriting quicksort and explain
- The complexity and stability of various sorts
- How to determine the permissions of class members
- On three sides
- JVM memory region
- Volatile and reorder
- Java memory model
- Reference counting and accessibility analysis
- Finalize the principle
- Principle of Android interface refresh
- What are the methods of Android performance optimization
- Observer model, chain of responsibility model
- OkHttp internal implementation, with or without caching
- The process from entering a URL to seeing a page
- What books have you read?
- Is it the strongest student in the lab who does development
- HR side
- Why the headline?
- What have you done as the project leader
- How long is the internship and when will it come
3. Tencent
- One side (3/12 19:00, phone, 40 min 34 SEC)
- Can you come to Shenzhen
- Introduce the project
- Why use SharedPreferences and how to save JSON
- What problems did you encounter in the project
- Broadcast and multicast
- Preference for boys, girls will be born until boys, ask the ratio of men to women
- Gson principle
- SQL statement, database optimization
- ORM, DAO, DSL
- Template method pattern
- Second interview (3/15 14:50, telephone, 17 min 46 SEC)
- What computer courses have you taken
- The Java class loading
- What is DexClassLoader for Android class loading
- What are the ways hash tables resolve conflicts
- Compare LinkedList with ArrayList
- TCP congestion control
- Can you come to Shenzhen
4. Meituan (3/14 PM, live, about 4 hours)
- One side
- To introduce myself
- The project history
- Why do you like Java and ask about some of its features
- Threads and coroutines, why are coroutines more efficient than threads
- RecyclerView picture dislocation problem
- Fragment commitAllowStateLoss method
- How do activities communicate with Fragments
- How does Handler solve memory leaks
- Other memory leaks
- Which is triggered first, a click event or a double click event
- Why does selector switch backgrounds, how does it work
- Do not consider the specific page, how to fundamentally optimize the interface stuck
- SurfaceFlinger, VSYNC
- Describe how this Handler works
- Print the leftmost node of each layer of the binary tree in turn
- Second interview
- How to judge whether the object should enter the old age
- Eden and Survivor ratio and collection rules
- Why does the new generation use copy algorithms
- Explain my understanding of Binder
- Describe the differences between ActivityManagerService and ActivityManagerNative
- Handwriting various singleton patterns
- Step jumping problem
- Find the intersection of two linked lists
- Determine whether binary trees are left and right symmetric (only structural symmetry is considered, not values)
- On three sides
- How does MVP and MVP solve memory leaks
- The project architecture
- Said the SharedPreferences
- Given an array, determine if there is a pair of equal prefixes and suffixes
- How do you study at ordinary times
- Do you have any new technology or learning plan that you want to learn
- HR side
- What’s your impression of our department
- Do you have any other interviews
- If Ali and Meituan both want you, which one would you choose
- Where is home
- Find out about Ali’s interview
- How long is the internship and when will it come
- Understand the interview situation of Tencent