5 interview routines for Android programmers. If you don’t know them, you will suffer a big loss!

Preface

Do you think the interviewer simply asked these questions? No! She is testing your abilities!

The interview is a level that every working person in the workplace must go through. So, for programmers, when faced with various "cross-examinations" from HR during the interview, how should you answer cleverly to "avoid the pitfalls"? Let’s summarize it with the editor below.

Self introduction

When you go to any company for an interview, you will go through the "self-introduction" level.

The interviewer asks you to introduce yourself for the following purposes:

  1. Break the sense of strangeness;
  2. Preliminarily understand and judge whether the industries and companies you have experienced match the company's requirements;
  3. Preliminarily judge your expression ability, communication ability and logical thinking ability.

But most people's answers are very simple, mainly including name, age, hobbies, and work experience, which are basically the contents that have been clearly written on the resume.

In fact, what HR wants to hear is what is not written on your resume, such as the skills you are good at, the projects you have worked on, your major achievements, especially the details of the projects, which can help HR have a more intuitive understanding of you.

Note here that the time for self-introduction must be grasped well. It is not appropriate to be too long or too short.

In short, remember that introducing yourself may seem simple, but it doesn’t mean it’s unimportant! Don’t be casual!

Tell us what you know about the company

HR asks you this question simply to understand your sincerity in applying for the job. If you do not know the company in advance, HR may feel that you are not sincere and are just here to "take a look", giving people the feeling that you do not value this company.

Therefore, the safe way is to understand the basic situation of the company before the interview, so that you can discuss this issue with ease.

However, if you really don’t understand the company, you can’t just say “I don’t know” directly. This will make HR think that you are not prepared in advance. It can be said that you have searched the company profile online, but you don’t know much about it.

Reason for leaving

This is a very important question. Don’t talk about the bad things about the original company, the “hateful” boss or managers, or any other complaints. Otherwise, it will make the interviewer think You are a person with a lot of negative emotions, and in the end I don’t dare to want you.

You can answer this question very tactfully from the aspects of your career plan, technical route, personal development, etc., saying that your career plan and life goals are not in line with the company, or that you have not been able to reach an agreement with the company in some aspects, or Or say that you have fewer promotion opportunities, etc. Turn your disadvantages into advantages and turn this problem into your plus points as much as possible.

Expected Salary

This is also a question that needs to be answered carefully. If the asking price is too low, it will appear that you are "low-priced" and cannot highlight your abilities. Blindly asking for high prices will make the company feel that it cannot afford it.

Therefore, when programmers face this problem, they must have a correct mentality, prepare their homework, and understand the market salary of the position they are applying for.

When HR asks about salary, you can say this: I submitted my resume through a certain recruitment platform. I looked at the salary range and requirements for this position, and it matches my current situation. I think my abilities are sufficient. I am qualified for this position and I hope the company will give me a reasonable salary based on my abilities.

Of course, you must ask clearly whether the total salary is before tax or after tax, how long the probation period is, and what the payment ratio is.

Is it possible to work overtime?

Although it is said that programmers' daily work is destined to be inseparable from overtime work, when HR asks this question, they cannot directly tell how they worked overtime until they were exhausted. They have become accustomed to this rhythm, and they cannot say that they do not want to. Working overtime will make HR think that you are not a technical person but just messing around.

You can say: This is what I think about overtime. If the project is in a hurry, I can understand working overtime in the short term. If the project is working overtime for a long time, it will be detrimental to the programmer's physical and mental rest, and will reduce development efficiency, which may not be good. .

This answer is both reasonable and reasonable, and it also clearly expresses your unwillingness to work overtime all the time.

at last

To sum up, the interview is the first hurdle that programmers face when entering the workplace. You must learn these tips and the "mystery" behind the questions, otherwise you will suffer a loss and easily reduce the success rate of the interview.

For technical interview questions, the editor here has also prepared a " Android Interview Question Summary + Answer Analysis " for you, which includes Java, Android, Android Framework, Kotlin, Flutter, audio and video, algorithms, etc., which are all common interview questions in companies. , whether it is used to prepare for interviews or improve one's own skills, it is very suitable.

[Friends in need can scroll to the end of the article to get it! ! !

Let’s get to the point:

Insert image description here

Java aspect

Java basics

  • What is the difference between abstract class and interface?
  • Let’s talk about final, static, and synchronized respectively.
  • Please briefly describe String, StringBuffer and
  • What are the differences and usage scenarios between "equals", "==", and "hashCode"?
  • What is the difference between deep copy and shallow copy in Java?
  • Talk about the difference between Error and Exception?
  • What is the reflection mechanism? What are the application scenarios of the reflection mechanism?
  • Talk about how to override the equals() method? Why rewrite hashCode()?
  • Talk about your understanding of type erasure in Java generics, and talk about its limitations?
    -Why should String be designed to be immutable?
  • Tell me about your understanding of Java annotations?

Java Collections

  • Talk about the differences between List, Set, and Map?
  • Talk about the difference between ArrayList and LinkedList?
  • Please tell me the difference between HashMap and HashTable
  • Let’s talk about the expansion mechanism of ArrayList?
  • How is HashMap implemented?
  • Please briefly describe the working principle and usage of LinkedHashMap?
  • Talk about your understanding of ConcurrentHashMap?

Java multithreading

  • What are the ways to use multithreading in Java?
  • Tell me about the states of threads?
  • How to achieve synchronization in multiple threads?
  • Let’s talk about thread deadlock. How to effectively avoid thread deadlock?
  • Talk about the reasons for thread blocking?
  • Please talk about the difference between run() and start() in Thread?
  • What is the difference between synchronized and volatile keywords?
  • How to ensure thread safety?
  • Talk about the usage and principle of ThreadLocal?
  • What is the difference between notify and notifyAll in java thread?
  • What is a thread pool? How to create a thread pool?
  • Let’s talk about the common locks in Java threads?
  • Let’s talk about the difference between thread sleep() and wait()?

Java virtual machine

  • Let’s talk about JAVA garbage collection mechanism?
  • Answer: What are strong, soft, weak, and virtual references and the differences between them?
  • Briefly describe the loading mechanism and loading process of classes in JVM?
  • What are the principles and differences between JVM, Dalvik and ART?
  • Please talk about Java's memory recycling mechanism?
  • What is JMM? What problems does it have? How to solve it?

Insert image description here

Android aspect

Four major components

  • What are the common communication methods between Activity and Fragment?
  • Application scenarios of LaunchMode?
  • How much do you know about Context?
  • What is IntentFilter? What are the usage scenarios?
  • Let’s talk about the difference, life cycle and usage scenarios between startService and bindService?
  • How does Service keep alive?
  • Briefly introduce how ContentProvider realizes data sharing?
  • Talk about the life cycle of Activity when switching between horizontal and vertical screens?
  • Is there a limit to the size of data transmitted by an Intent? How to solve?

Android asynchronous tasks and message mechanism

  • What are the usage scenarios and usage of HandlerThread?
  • What are the application scenarios and usage postures of IntentService?
  • What are the advantages and disadvantages of AsyncTask?
  • Talk about your understanding of Activity.runOnUiThread?
  • Can child threads update UI? Why?
  • Let’s talk about the Handler mechanism and principles?
  • Why does creating a Handler in a child thread throw an exception?
  • There is an infinite loop in Handler. Why is it not blocking the main thread? What is the principle?

data structure

  • What is bubble sort? How to optimize?
  • Please use Java to implement a simple singly linked list?
  • How to reverse a singly linked list?
  • Talk about your understanding of time complexity and space complexity?
  • Let’s talk about how to judge whether a linked list is a ring?
  • What is a red-black tree? Why use red-black trees?
  • What is quick sort? How to optimize?
  • Talk about circular queue?
  • How to determine singly linked list intersection

Insert image description here

Android Framework

Binder

  • What are the advantages of Binder?
  • How does Binder achieve one copy?
  • Do you understand the memory mapping principle of MMAP?
  • How does the Binder mechanism work across processes?
  • Let’s talk about the communication mechanism of the four major components
  • Why Intent cannot deliver big data

Handler

  • What is HandlerThread? Why does it exist?
  • Briefly describe the overall principle of the Handler mechanism?
  • Where does Looper exist? How can we ensure that threads are unique?
  • How to understand the role of ThreadLocal?
  • What are the similarities and differences between the main thread Main Looper and the general Looper?
  • How does Handler or Looper switch threads?
  • Why does Looper's loop() infinite loop not get stuck?
  • How can Looper's waiting be accurately awakened?
  • How to get Message? Why is it designed like this?

AMS

  • What is ActivityManagerService? When was it initialized? what's the effect?
  • What is ActivityThread? What is ApplicationThread? Their differences
  • What is Instrumentation? What is the relationship with ActivityThread?
  • How communication between ActivityManagerService and zygote process is implemented.
  • ActivityRecord、TaskRecord、ActivityStack,Activi
  • ActivityManager、ActivityManagerService、Activit
  • Handwriting implements simplified version of AMS

Insert image description here

Algorithm aspect

  • How to use the binary search algorithm
  • How to efficiently solve water connection problems
  • Binary search efficient decision subsequence
  • How to remove duplicate elements from sorted array
  • How to find the longest reply substring
  • How to perform modular exponentiation efficiently
  • How to use greedy thinking to play jumping games in a wide area
  • How to efficiently judge the backlink list
  • How to randomly extract elements from a wireless sequence
  • How to determine the legality of brackets
  • How to find missing and duplicate elements
  • Please talk about HashMap, the principle of SparseArrary, the advantages of SparseArrary compared to HashMap, and how ConcurrentHashMap achieves thread safety?
  • Please talk about the principle of HashMap, the access process, why red-black trees are used, the comparison between red-black trees and complete binary trees, HashTab, concurrentHashMap, and what are in the concurrent package?
  • Please talk about the underlying principle of hashmap put(). When a conflict occurs, how to add it (traverse along the linked list, compare the key values ​​​​one by one to see if they are consistent, and if they are consistent, overwrite and replace them. After the inconsistent traversal is completed, insert the position)?

Insert image description here

Kotlin aspect

  • Please briefly describe what is Kotlin? What features does it have?
  • What are some common ways to implement singletons in Kotlin?
  • In Kotlin, what are inline functions? what's the effect?
  • Please talk about Coroutines in Kotlin, how is it different from threads? What are the advantages?
  • Talk about the similarities and differences between Any in Kotlin and Object in Java?
  • Are there implicit conversions of data types in Kotlin? Why?
  • What are the ways to traverse collections in Kotlin?
  • What is the principle of Kotlin's built-in standard function let?
  • What is the principle of run high-order function in Kotlin language?

Audio and video

  • How to optimize the instant start of live broadcast?
  • What are the methods of digital image filtering?
  • What features can be extracted from images?
  • FFMPEG: How to synthesize video from pictures
  • What are the common audio and video formats?
  • Please describe the MPEG video basic stream structure?
  • Let’s talk about the data structure of ffffmpeg?
  • How to reduce latency? How to ensure fluency? How to solve lag? Solving network jitter?
  • What are the soft solutions and hard solutions that we usually talk about?

Insert image description here

Flutter aspect

  • Features of Dart language?
  • How does Dart multitask in parallel?
  • Is dart pass by value or pass by reference?
  • What are the features of Flutter?
  • What is the relationship between Widget, element and RenderObject?
  • What are the conditions for using mixins?
  • Stream two subscription models?
  • What are the core concepts of Widget, State, and Context in Flutter? What problem is it to solve?
  • Let’s talk about the differences and principles between Hot Reload, Hot Restart and hot update.
  • How does Flutter communicate with Android iOS?
  • Let’s talk about what state management is and why it is needed?

Insert image description here

Due to the limited space of the article, if you need complete interview materials, you can scan the QR code below to get it for free! ! !

Guess you like

Origin blog.csdn.net/YoungOne2333/article/details/132837283