Series of articles:

  1. Android Internship Interview in 2019
  2. 2019 Android campus recruitment interview summary
  3. 2019 Android Ali & Tencent & Baidu & Byte & Meituan & netease & IQiyi School recruitment interview summary

Basic situation

  • 2020 master, Android development post
  • This article is mainly a summary of my experience in spring recruitment interview and formal school recruitment interview in 2019. I finally got offers from Tencent, Baidu, Meituan and netease
  • It mainly includes alibaba 4, Tencent 8, Byte 3, Baidu 3, Meituan 3, netease 3, iQiyi 3

Ali.

Ali interview likes to ask the source, optimization, principle, and involves the range is very wide, still has some challenging, including ali practice under two surface and school recruit two face, the author are stopped in the second interview, can look for push ali (the author practice delivering written do bad, thought to hang, but probably because looking for push so you may as well give me the interview, A round of written test was added later, and there was no written test in the interview.

Ali’s internship

  • Source: Handler message mechanism (specific classes and details involved); HashMap (Data structure & put operation process, capacity expansion time complexity); ArrayMap principle
  • JVM: Java memory partition, stack differentiation, which areas are thread private, which areas are shared; Stack frame, the operation on and off the stack of a Java method call
  • Concurrent access: The principle and effect of volatile, and whether it is atomic; Synchronized: the difference between a code block/method/object? (Will the singleton DCL fail?) ; The principle of the Lock
  • Android: Activity lifecycle (which classes are involved?) ; ANR (what is ANR? How to monitor: before operation, after operation, online monitoring?

Ali’s second internship interview

  • Item: Number of users of the project, whether there is a store on the shelf; Whether there is an IM communication module; How to solve the login module; How to let APP users with tens of millions of users know their status in real time (APP side & Server side)
  • Java: The difference between synchronized modifiers and classes The effect of the volatile keyword
  • JVM: memory allocation; Garbage collection algorithm
  • Android: Event distribution; Message mechanism (why Looper dead loop is ok? How to implement communication between threads? ; What is the operating system level loop? Do endless cycles necessarily lead to ANR? ; View drawing process (specific principles, including but not limited to drawing three processes)
  • Network: HTTP cache

Ali is a good teacher

  • Android: have you met OOM problem? Have you met memory leak problem? How to solve it? Handler mechanism principle; Function and principle of ThreadLocal; The Activity starts to load the View. View drawing process; OKHttp framework (1. Why it was chosen 2. Performance 3. EventBus framework
  • Design patterns: Which design patterns have been used
  • Internship: Difficulties encountered in the internship project
  • Network: HTTP and HTTPS difference
  • Others: Why choose XX department; Competition information

Ali school recruit second interview

  • Project: Why choose OKHTTP framework; Picture frame? (Glide); JSON parsing framework? (Gson); How to determine the technology selection; Number of project APP pages; Ali Cloud object storage OSS upload credentials how to design cache, how to encrypt (encryption algorithms?
  • Android: Activity life cycle, start the transparent Activity life cycle, press the Home button life cycle process; How to recover data after killing APP in the background; Can an APP have multiple processes? ListView and RecyclerView difference; RecyclerView how to check, RecyclerView how to achieve multiple types, RecyclerView ItemView hierarchy is too deep how to optimize; Android multiprocess; How to design Communication between Android threads; Handler mechanism, child thread can use Handler? ANR principles?
  • Java: Private protected public; Interface, abstract class distinction, abstract class should implement interface methods; Map thread safety, read more write less select which collection;
  • Network: HTTP/HTTPS difference; What is TCP, handshake and wave; Long connection; How to implement server push

tencent

Tencent interview involves the range is very wide, and even asked to c + +, also has a certain challenging, the following including tencent internship and school recruit all around all around, finally got the offer open positions, tencent in the process of the interview is a lot of I don’t feel very familiar with the knowledge points have been asked to, or even don’t know of knowledge, but overall the interviewer experience is good to the person, Call ahead to schedule an interview.

Tencent internship batch in advance

  • Android: What are the four components? Fragment is an Activity. SurfaceView and View difference, SurfaceView principle; Front desk service and background service difference; AIDL understand; What are the IPC methods and which are the fastest? Protocol Buffer What is the use of multiple processes in APP; Method number 65536 how to solve; View Display process
  • Java: Thread synchronization; What is a deadlock
  • JVM: memory allocation; The difference between heap and stack; GC algorithm, garbage collection; Class file generation process
  • Computer Networking: What is HTTP and the difference between HTTP and HTTPS; TCP Three-way handshake four-way wave. TCP/UDP difference; HTTP is a long or short connection; HTTP status code; Packet capture tool, how to capture packet HTTPS
  • Design patterns: what are producers, what are consumers; Command mode
  • Data structure: quicksort and time complexity; Seven sorts; Binary tree principle; Red and black tree

Tencent internship in advance batch two

  • C++ : class vs. struct
  • Project: Introduce the project, what are the difficulties; MCU was used in the competition. What is the command level
  • Java: HashMap; ArrayList, LinkedList; Notes to introduce; What is type erasure in generics
  • Data structure: line segment tree; B + tree
  • Android: OkHttp, OkHttp; RxJava introduction; Activity Four startup modes; How do I exit all activities from an APP? If there are third-party SDK activities, how do I exit

Tencent internship official approval side

  • Algorithm: the median frequency in a string; Longest common substring problem LCS
  • Project: OKHTTP framework
  • Computer network: TCP UDP HTTP distinction; TCP sliding window; Use UDP to implement TCP
  • Database: Three paradigms; Index. How do you know if you hit an index
  • Operating system: interprocess communication; Principle of Shared Memory

Tencent internship officially approved the second face

  • Project: Project introduction; A memory leak
  • Android: OKHTTP difference between HTTP and HTTPs; HTTPs encryption principle; BlueboothAdapter; XML file, CLEAR_TOP mode, singleTop and singleTask usage scenarios respectively; Android storage (files, SP, database [more on SQLite]); Differences between Android virtual machines and Java virtual machines
  • Java: deep copy shallow copy (what’s the difference between memory overflow or garbage collection?) ; Multithreaded model
  • Data structure: binary tree; B tree (insert/delete process)

Tencent school enrollment approved in advance

  • Project: Project introduction; The functionality implemented by the project
  • Networking: Introduce the HTTP protocol. How to expose HTTPS public key; HTTP section upload file how to ensure correct; HTTP cache
  • Java: process thread difference Communication between child threads; Deadlock solution, how to determine the occurrence of deadlock
  • Algorithm: reorder the array to ensure that the order of odd and even is unchanged, finally make all odd first, even last; The sum of 2 over 3

Tencent school enrollment approved two interviews in advance

  • Project: Project sorting; Image compression algorithm; Bitmap JPG difference; Breakpoint retransmission, how to dynamically determine the range; Breakpoint download; Principle of CRC
  • Design patterns: ADVANTAGES and disadvantages of MVC; Where is the C implementation of MVC in MVP; Singleton mode of hungry and lazy choice, use scenarios
  • Network: HTTPS encryption mode

Tencent school recruit officially approved test open side

  • Android: Crash, ANR
  • Data structure: Design the data structure of the World Cup final 32 matches
  • Puzzle: 2 balls, a total of 100 floors to find which floor dropped balls just bad
  • Others: introduce the specific work of test opening

Tencent school recruit officially approved test open two

  • Project: Talk about details
  • Android: picture, voice large memory data performance investigation, positioning; Handler memory leak problem; ART Dalvik difference; The GC mechanism; CountDownLatch principle
  • Algorithm: do not use a loop, greater than, less than, etc. Find the maximum value in the array
  • Small talk: Ego advantage

byte

Byte interview focuses on the basics, including online writing questions, data structure, Java foundation, JVM foundation, operating system, etc. The following includes three internships; The bytecan internship interview is a one-day technical interview, and if you pass each interview, the next round of interviews will start in about 15 minutes. All interviews are video interviews.

Byte internship side

  • Project: Introduce the project
  • Java: deep copy/shallow copy, how to implement deep – shallow copy, CopyonWrite; Java Memory (Allocation -> Detailed process of reclamation)
  • Network: TCP wave, the third time do not wave what will happen; HTTPs encryption explanation, symmetric/asymmetric encryption
  • Algorithm: Array A, array B, calculate A-B; All prime numbers between 0 and n.

Byte practice two interviews

  • Java: Thread synchronization issues (Why synchronize & How to synchronize)
  • Design pattern: singleton pattern (static inner class); Introduction to other design patterns
  • Data structure: sorting algorithm, merge/fast sorting (implementation principle/average complexity/can end early/who has better performance), heap (how to achieve heap structure adjustment /k maximum number);
  • Given two ordered integer arrays nums1 and nums2, merge nums2 into nums1 so that num1 becomes an ordered array

Three aspects of byte practice

  • Self-introduction: Professional courses learned; Read what computer professional books
  • Operating system: Memory allocation area (Java level answer, object references in both heap and stack? Where is the object of new stored inside the function? ; User/kernel mode; What is an interrupt
  • Network: which layers of computer network are there and which protocols correspond to them; What data is transmitted through IP/TCP; What is DNS and what does it do

baidu

Baidu is the on-site interview, there are three interviews, there is no HR interview, the third is the director of the interview, both technical and non-technical interviews, Baidu interviewers are friendly, technical questions are more detailed, the second is focused on the project, the third is mostly chat.

Baidu school recruitment side

  • Project: Project introduction; Coding specifications in the project
  • Android: Four components of Android security; Activity Start mode; IntentFilter Matching rule, action is different from category. Handler block why not jammed; Event distribution mechanism, onTouchEvent returns false processing flow, dispatchTouchEvent returns false processing flow; What is a Looper; Object pool, handwritten object pool implementation; ContentProvider principle; Sp support cross-process, how to solve the cross-process, how to achieve process synchronization; Frame animation implementation: 100 pictures, 200ms display a picture, read a picture to 400ms, how to avoid stuck; Bitmap memory overcommitment restrictions
  • Operating system: thread time slice allocation principle

Baidu school recruit two face

  • Project: Carding project; Project difficulties; Technical framework in the project
  • Algorithm: handwritten dichotomy; Elevator state machine design
  • Others: Advantages and disadvantages; professional

Baidu school recruit three aspects

  • Algorithm: longest common substring
  • Android: ART virtual machine class loading mechanism; Okhttp principle; Principle of thermal repair
  • Other small talk: strengths and weaknesses; University regret; What activities did I organize as the monitor? Something that persists for a long time; Professional to

Meituan

Meituan interview is a day on surface finish, technical interview a total of two rounds, finally have a HR interview, recall questions not seem to be much more special, but is more open, chat more in-depth, technical side directly open the relevant page design implementation Meituan APP chat, this way is novel, the second interview is a chat program is more, ask a lot of project specific implementation details.

  • Project: Internship program; The most difficult project; Technical selection in the project; Ali Cloud object storage OSS STS voucher design
  • Android: Lint is compile-time, how it works; Meituan home page design concrete realization; RecyclerView multi-item difficulty;
  • Design mode: MVP MVVM usage scenario
  • HR: What are your current offers? Basis of offer selection; Talk about how to solve the communication problems in the company

netease

Netease technical interview has four rounds, including three technical rounds and one HR round, the first two video rounds and the last two on-site rounds. In the first and second aspects of netease technology, most of the topics are basic, and the topics are detailed, while the three aspects are in-depth, and many situational topics are discussed, such as all aspects of log system design, including efficiency, security and so on.

Netease school recruitment

  • Project: Introduced the deepest solution of bug image during the internship
  • Android: event distribution transfer process, onTouchEvent return flase how to do; How to design the cache; Android data persistence, how the database batch processing (principle); SP support does not support multithreading, SP how to achieve multithreading; View drawing process; Handler message mechanism
  • Java: how does thread B wait for thread A to complete its work? How a thread terminates its work, and three ways Java terminates a thread; Which Java thread methods support interrupts; Design a request for limited resources; How to design the object pool (object store and put back); When threads from the thread pool are created; Lock in Java, reentrant lock performance
  • Algorithm: Two arrays swap one value, set and equal, find the two values

Netease school recruitment second interview

  • Project: Work content during internship; Participating projects; Bugs solved during the internship; Talk about the programming specification involved; What about the Lint tool
  • Design pattern: singleton pattern
  • Android: interprocess communication (different from Linux interprocess communication) Socket how to verify security; Broadcast (global local distinction); How to realize the multi-process communication of the file (how to notify B process to read the file changed by A process); How to design two level cache (network database view relationship); Is the volatile keyword atomic
  • View: Activity life cycle, onSaveInstanceState onRestoreInstanceState, call time, broadcast registration should be in the Activity life cycle, how to count the number of Activity onCreate; Fragment life cycle management, Fragment and ViewPager View drawing process, three modes of MeasureSpec; Framelayout LinearLayout ReativeLayout respectively set the Button in the lower right corner; The difference between margin padding and gone Invisible; RequestLayout, Invalidate and postInvalidate Android animation how to cancel the loop animation, repeat mode; Drawable: a view has a drawable

Netease school recruitment three aspects

  • Project introduction
  • Android: Add the URL size to save traffic during image transfer. If you forget to add it, how to set the size if the ImageView is wrAP_content. Image caching, encoding, memory overcommitment, formatting (SVG, etc.); What is drawable mutate; Okhttp bridge interceptor and cache interceptor; Design a custom DNS resolver
  • Design question: have you seen the open source framework; Log system design, there will be buffer in the process of writing log files, how to do when the process is killed, how to do when the log is tampered with by users, how to ensure the security of the log, how to ensure that the log is not repeated transmission
  • Others: disk memory mapping principle; Have you ever encountered reuse problems in daily development? What’s new with Android? Self-study plan

iQIYI

Iqiyi’s first and second interviews are mostly based on the foundation, and the third is the director’s interview, which will talk about the principle in depth, but also more details.

Iqiyi internship side

  • Project: Introduce internship program; Analyze memory leaks, thread synchronization problems
  • Computer networking: HTTP/HTTPS distinction
  • Android: OkHttp framework (with those design patterns); How do I terminate a thread

Iqiyi second internship interview

  • Project: Introduce the project; The source of the memory leak, has it been optimized
  • Android: Two ways to start a Service, what is the difference? Has performance optimization been done
  • Java: Handwritten singleton pattern
  • Algorithm: Delete a node in the linked list

Iqiyi three internship

  • project
  • Java: public keyword function; .java file name how to determine; There are at most several external classes and at most several inner classes. Does the inner class support nesting? Thread pool how to set the name of the new thread, thread pool type; Use of annotations
  • Android: Activity startup mode, lifecycle, Activity A->B lifecycle; How to implement Looper and thread binding in Handler, a thread can have a maximum of several Looper, multiple Looper reported exception, message blocking again wake up mechanism; What is a ThreadLocal

The last

Summary of frequent interview questions

  • Android four components, Activity life cycle, Fragment
  • Handler, Looper, ThreadLocal, event distribution, View drawing, Activity startup
  • Memory leak, OOM, image load, ANR, ART and Dalvik VIRTUAL machine
  • Multithreading, multiprocess, deadlocks
  • HTTP, HTTPS, TCP, UDP
  • HashMap and its remainder Java collections
  • Memory allocation, collection algorithms, GC, stack differentiation, class loading mechanisms
  • Volatile, synchronized, Lock
  • MVC, MVP, MVVM, singleton pattern, observer pattern

The interview result

  • The first interview will generally have a self-introduction, can be prepared for the next 1-2 minutes of self-introduction
  • Android job interview content is wide, need to do all aspects of knowledge to understand, in the understanding of the basis of continuous deep cultivation
  • In-person interviews are generally better than phone or video interviews because face-to-face meetings are more effective and clear
  • Create at least one project that you can talk about in an interview, keep your resume fresh, and familiarize yourself with open source tools
  • Android position general algorithm questions are not high requirements, brush “Sword finger Offer” most can deal with

advice

  • Mainly for non-class students: the best system to see the operating system and computer composition principle, recommend Tsinghua University Chen Yu’s operating system open class, because after seeing the operating system to understand the principle of the computer system, can better from the bottom to understand the upper
  • Read the source code, including Java layer code in the JVM implementation source (such as synchronized implementation source), the Android Framework source (better understand the implementation of Android layer), Android open source library source code (OKHttp, Retrofit, RxJava EventBus, Glide, Gson, etc., better learning good open source library source code, to do with ripe, know principle)
  • Ask yourself more why, for example, what are the advantages and disadvantages of the two technical points, and their application scenarios (for example, advantages and disadvantages of hungry and lazy in singleton mode, and application scenarios), so as to better fit the actual application development, and use different technical points for different scenarios
  • Timely checking summarizes the questions in the interview, is divided into two aspects, one is to know but not deep, the need to continue to look, another kind is no contact, this can understand first, one thousand interviews met again, can learn to answer, then go in-depth summary (after all, time is limited, can’t please everyone, can only keep learning summary)

resources

Java books

  • Java Core Technology: Java basics
  • The Art of Concurrent Programming in Java: The Art of Concurrent Programming in Java
  • Understanding the Java Virtual Machine: A collection of virtual machine knowledge

Android book

  • “Android development art exploration” : Android four components principle, part of the Framework source code, picture high performance loading, multi process Binder principle and so on
  • Android source code design pattern: Design pattern, the Android source code used in the design pattern; MVC, MVP, MVVM
  • “Android Advanced Light” : various Android open source framework source analysis
  • “Android Advanced decryption” : Android system startup process, Activity startup process, JNI, ART virtual machine, hot repair, plug-in and other principles
  • The Definitive Guide to Android Gradle: Understand how Gradle works

Algorithm list

  • “Big Talk Data Structure” : basic talk about common data structure, and rich graphics, clear and easy to understand
  • “Sword finger offer” : brush the question

Operating system book list

  • Operating System Concepts: Basic concepts of an operating system

Computer network

  • Illustrated HTTP: an illustrated, easy-to-understand introduction to HTTP

Good blog

  • Android interview questions series