Emergency response to the gold three silver four job-hopping season, those programmers who want to change venues can act in the Android market!

Why would you want to leave

The rent is about to be paid again, why is the salary not paid? Every month I always feel that the money is not enough to spend, and the salary is always unable to keep up with the consumption. When can I increase my salary?

Now going to work is like going to the grave. I can't find the slightest sense of accomplishment. I can never do all kinds of troubles and trivial things every day.

Why do we want to leave? It's nothing more than the above two reasons: I didn't give enough money, I was unhappy, I wanted to change the environment. If you are already thinking about changing jobs, take advantage of the golden three or four, you can prepare for action .

Last year, we experienced the cold winter of the Internet and the epidemic. After the epidemic last year, the start of work was even worse. Some readers told me that I was caught by cai on the first day of work. A few days after that, Didi also announced that it would spend 15% of cai’s employees, affecting more than employees. 2000 people, so you have to be cautious when you change jobs. How to get the offer you like?

resume

The first is the resume. Generally, you can find a template and fill in the skills and project experience you have mastered.

After the project is cloned, you can customize Resuem.md, and then export it as a pdf file.

The recommended length of your resume is 2 pages, too long or too short is not good.

It is recommended to replace understanding and proficiency with mastery and proficiency.

Many people often encounter many interview questions about resume production, career confusion, and HR classic interview questions. Similarly, I also collected and compiled a full set of resume production, puzzles of recruitment by the Golden Three and Silver Four Clubs, and HR interviews. If you have any questions, I can provide professional answers.

Interview questions

Five times brushing method:

  • The first time, look at the solution directly

Multiple solutions, compare the advantages and disadvantages of the solutions, and write a good solution

  • The second time, open leetcode and start writing directly

Comparison of various solutions and optimization

  • The third time, after one day, repeat the question again

  • The fourth time, after a week, let’s practice again and again,

  • The fifth time, one week before the interview, recovery training

Repeat the exercises through the above methods, about 100 questions are enough to deal with the interview, if you do 3 questions a day, you can prepare for about a month

Next is a series of interview questions and detailed analysis of a series of interview questions: (I have compiled several documents for the detailed analysis of interview questions, and you can get them directly here if you need it .)

Analysis of Meituan Android Interview Questions

Android basic knowledge points

  • The life cycle of the four major components
  • Communication method between activities
  • When switching between horizontal and vertical screens, the life cycle of Activity in various situations
  • Life cycle comparison between Activity and Fragment
  • The life cycle when the Home button is pressed when there is a Dialog on the Activity
  • Which methods are inevitably executed when jumping between two activities?
  • The foreground switches to the background, and then back to the foreground, the Activity life cycle callback method. Pop up Dialog, life value cycle callback method.
  • Comparison of the four startup modes of Activity
  • Activity state is saved in recovery
  • How to manage the life cycle of fragment in various situations
  • What is the principle of opening the Service?
  • Please describe the life cycle of Service
  • .........

Android source code related analysis

  • Android animation framework implementation principle
  • The difference between Android versions of API
  • The difference and connection of Requestlayout, onlayout, onDraw, DrawChild
  • The difference and use of invalidate and postInvalidate
  • The difference between Activity-Window-View
  • How to optimize a custom view, and what is your general direction for optimization?
  • How does the low version SDK implement the high version api?
  • Describe the flow of a network request
  • HttpUrlConnection and okhttp relationship
  • Understanding of Bitmap objects
  • looper architecture
  • .........

Some common principle problems

  • Handler mechanism and underlying implementation
  • The difference between Handler, Thread and HandlerThread
  • The handler sends a message to the child thread, how does the looper start?
  • Regarding Handler, where is the new Handler thread?
  • ThreadLocal principle, implementation and how to ensure the Local property?
  • Please explain the relationship between Message, Handler, Message Queue, Looper in the single-threaded model
  • Please describe the View event delivery and distribution mechanism
  • Touch event delivery process
  • What is the difference between onTouch and onTouchEvent in event distribution, and how to use it?
  • What are the callback methods related to event distribution for View and ViewGroup respectively
  • View refresh mechanism
  • .........

Analysis of Baidu Android Interview Questions

Android interview questions

  • Several ways of cross-process communication
  • The difference between wait and sleep
  • The difference between String, StringBuffer, StringBuilder
  • The difference between View and SurfaceView
  • View drawing principle
  • Brief description of JNI
  • Brief description of TCP, UDP, Socket
  • Audio and video related categories
  • The difference between process and thread
  • How to view and solve memory leaks
  • View’s distribution mechanism, sliding conflict
  • The difference between RecyclerView and ListView
  • .........

Java interview questions

  • HashMap
  • ArrayList
  • LinkedList
  • Hashset source code analysis
  • Memory model
  • Garbage Collection Algorithm (JVM)
  • The difference between garbage collection mechanism and calling System.gc()?
  • Class loading process
  • reflection
  • Multithreading and thread pool
  • HTTP, HTTPS, TCP/IP, Socket communication, three-way handshake, four waved hands
  • Design patterns (six basic principles, design patterns commonly used in projects, handwritten singletons, etc.)
  • .........

kotlin

  • What is the difference between ==, === and equal?
  • What is the difference between var and val?
  • What are the functions and principles of default parameters in Kotlin?
  • The principle of top-level functions in Kotlin
  • What is the infix function? be careful?
  • The essence of destructuring function?
  • The essence of the extension function?
  • What is the difference between extension functions and member functions?
  • What are the modifiers of classes commonly used in Kotlin?
  • What are the visibility modifiers in Kotlin?
  • What is the difference between inner classes in Kotlin and inner classes in Java?
  • The principle behind Kotlin's property proxy?
  • .........

The internet

  • Which layer of protocol is HTTP, what are the common HTTP status codes, and what do they mean?
  • What is the difference between HTTP 1.1 and HTTP 2?
  • What is the difference between HTTP and HTTPS?
  • SSL/TLS handshake process?
  • Why does TCP's three-way handshake process need three times instead of two or four times?
  • The four waves of TCP?
  • What is the difference between TCP and UDP?
  • .........

Analysis of Huawei Android Interview Questions

Java basics

  • type of data
  • String
  • Calculation
  • Keyword
  • Object general method
  • inherit
  • reflection
  • .........

Java container

  • Design patterns in containers
  • Vector
  • CopyOnWriteArrayList
  • LinkedList
  • HashMap
  • ConcurrentHashMap
  • .........

Java concurrency

  • Use threads
  • Basic threading mechanism
  • Interrupt
  • Mutually exclusive synchronization
  • Cooperation between threads
  • Thread state
  • J.U.C - AQS
  • .........

Summary of Android knowledge points

  • Activity
  • Fragment
  • Service
  • BroadcastReceiver
  • ContentProvider
  • data storage
  • View
  • process
  • Parcelable interface
  • IPC
  • Bitmap
  • .........

Android extension knowledge points

  • ART
  • Apk package body optimization
  • Hook
  • Proguard
  • Architecture
  • Jetpack
  • NDK development
  • Computer network foundation
  • Class loader
  • .........

Android open source library source code analysis

  • LeakCanary
  • EventBus
  • Glide
  • install
  • ARouter
  • Plug-in (the principle and genre of different plug-in mechanisms, advantages and disadvantages. Limitations)
  • Hot fix
  • RXJava (RxJava's thread switching principle)
  • Retrofit
  • OkHttp
  • .........

Summary of design patterns

  • Design pattern classification
  • Six principles of object-oriented
  • Factory mode
  • Singleton mode
  • Builder mode
  • Prototype mode
  • Adapter mode
  • Observer mode
  • Agency model
  • Chain of Responsibility Model
  • .........

Summary of common interview algorithm questions

  • Sort
  • Binary tree
  • Linked list
  • Stack/queue
  • Dichotomous
  • Hash table
  • Heap/Priority Queue
  • Binary search tree
  • Array / double pointer
  • greedy
  • String processing
  • .........

Analysis of Tencent Android Interview Questions

Java basics

  • The difference between HashMap and HashTable and CurrentHashMap
  • The difference between synchronized and volatile, ReentrantLock, CAS
  • JVM class loading mechanism, garbage collection algorithm comparison, Java virtual machine structure, etc.
  • Four references to Java
  • Java's generics, the difference between <? super T> and <? extends T>
  • What are the states of Java threads, what locks are there, and the difference between various locks
  • The difference between final, finally, and finalize
  • The difference between interface and abstract class
  • The difference between sleep, wait and yield, how does the thread of wait wake it up?
  • The difference between == and equals and hashCode in java
  • String、StringBuffer、StringBuilder 区别
  • .........

Jvm part

  • How is the Jvm memory area divided?
  • What is the Jvm memory model?
  • The difference between String s1 = "abc" and String s2 = new String("abc"), the case of generating objects
  • How to judge that the object is recyclable?
  • Common algorithms for GC?
  • What is the difference between Minar GC and Full GC?
  • Tell me about the four kinds of references and their differences?
  • The process of class loading?
  • The mechanism of class loading, and why is it designed like this?
  • .........

Computer network part

  • The difference between TCP and UDP
  • Shake hands three times and wave four times. Why is it three times, not twice?
  • The difference between HTTPS and HTTP. HTTP 2.0, 3.0?
  • The browser enters a URL and press Enter. What is the process of network transmission?
  • What is the frequency of sending packets after TCP establishes a connection?
  • OKHttp
  • How to verify the legitimacy of the certificate?
  • Where is symmetric encryption and asymmetric encryption used in https? Do you have any knowledge of encryption methods (such as RSA)?
  • How does the client determine that the message it sent has been received by the server?
  • Talk about your understanding of WebSocket
  • The difference between WebSocket and Socket
  • Talk about your understanding of Android signatures
  • Please explain why Android needs to add a signature mechanism?
  • .........

Android interview questions

  • What is ANR and how to avoid it?
  • What are the life cycles of Activity and Fragment?
  • Activity life cycle when switching between horizontal and vertical screens
  • Defects and problems of AsyncTask, talk about its principle
  • onSaveInstanceState() 与 onRestoreIntanceState()
  • The priority of the process in android?
  • Why does Bunder pass objects need to be serialized? What is the difference between Serialzable and Parcelable?
  • Animation
  • Context related
  • New features in each version of Android
  • Json
  • The difference between Jar and Aar
  • What is the memory size allocated by Android for each application
  • The role of Merge and ViewStub
  • How to use ContentProvider
  • How does Android accelerate the startup of Activity?
  • .........

Android Framework related

  • Android system architecture
  • View's event distribution mechanism? How to resolve sliding conflicts?
  • View drawing process?
  • Cross-process communication
  • What is the Android system startup process?
  • Start a program, you can click the icon on the main interface to enter, or you can enter from a program
  • Explanation of important terms in the AMS family
  • App startup process
  • How ActivityThread works
  • Let's talk about the startup process of the four major components, the way of starting and destroying the four major components
  • How does AMS manage Activity?
  • Understand Window and WindowManager
  • How does WMS manage Window?
  • In general, what happens when an application is installed on the phone?
  • .........

Performance optimization topic

  • What stability optimizations have you made?
  • How does performance stability do?
  • How to ensure business stability?
  • If an abnormal situation occurs, how to quickly stop the loss?
  • How is startup optimization done?
  • What are the points of attention that are easy to overlook when starting optimization?
  • What is the process of your memory optimization project?
  • What is your biggest feeling about memory optimization?
  • What tools did you use in the process of layout optimization?
  • Why did the layout cause lag, and how did you optimize it?
  • What are the results of the layout optimization?
  • .........

Algorithm collection

  • Sort
  • Binary tree
  • Linked list
  • Stack/queue
  • Dichotomous
  • Hash table
  • Heap/Priority Queue
  • Binary search tree
  • Array / double pointer
  • greedy
  • String processing
  • .........

Kotlin topic

  • basis
  • function
  • Classes, objects and interfaces
  • lambda
  • Type system
  • Coroutine
  • .........

flutter topic

What does the ".." in Dart mean?
The scope of
Dart Is Dart a single-threaded model? How does it work?
How does Dart achieve multi-task parallelism?
Talk about the Future keyword in Dart asynchronous programming?
Talk about the Stream data flow in Dart asynchronous programming?
Please briefly introduce the Flutter framework and its advantages and disadvantages?
Introduce the conceptual architecture of Flutter.
Introduce the FrameWork layer and Engine layer of FFlutter, and their roles.
Introduce
the life cycle of Widget, State, and Context concepts .

  • .........

JNI module topic

  • Static registration
  • Dynamic registration
  • Data type mapping
  • Object array reference type
  • Default parameters of jni function
  • How does jni access methods and fields in java
  • jni access to static methods in java
  • jni access to fields in java
  • jni access to static fields in Java
  • Update the field content of java in jni
  • Create java class instance in jni
  • exception in jni
  • Common function package
  • .........

career planning

If your professional skills meet the needs of the interview position, the remaining interviewers will pay attention to your own career plans and ideas. Remember not to go too far, one mountain is even higher than the other.

I think low-key life and high-key work are more in line with the personality of our programmers. The desire for technology and the pursuit of continuous improvement can make you go further in this professional field. Finally, I sincerely wish everyone a good home.

At last

I won’t talk about the extra words. Next, I will share a review route for the interview. If you are also preparing for an interview but don’t know how to review efficiently, you can refer to my review route. If you have any questions, please feel free to communicate with each other. Come on!

Here is a direction for everyone to learn systematically:

1. Watch the video for systematic learning

The experience of Crud in the past few years has made me realize that I am really a fighter in the rookie. It is also because of Crud that my technology is relatively fragmented and not deep enough to be systematic, so it is necessary to study again. What I lack is the system knowledge, the poor structural framework and the thinking, so learning through videos is better and more comprehensive. Regarding video learning, individuals can recommend to study at station B. There are many learning videos on station B. The only drawback is that they are free and easily outdated.

In addition, I have collected several sets of videos myself, and I can share them with you if I need them.

2. To systematically sort out knowledge and improve reserves

There are so many knowledge points in client development, and there are still so little things in the interview. Therefore, there are no other tricks for the interview, just look at how well you prepare for these knowledge points. So, when you go out for an interview, it is good to see which stage you have reached in your review.

System learning direction:

  • Essential skills for architects to build foundations: in-depth Java generics + annotations in simple language + concurrent programming + data transmission and serialization + Java virtual machine principles + reflection and class loading + dynamic proxy + efficient IO
  • Android advanced UI and FrameWork source code: advanced UI promotion + Framework kernel analysis + Android component kernel + data persistence
  • 360° overall performance tuning: design ideas and code quality optimization + program performance optimization + development efficiency optimization
  • Interpretation of open source framework design ideas: hot repair design + plug-in framework interpretation + component framework design + image loading framework + network access framework design + RXJava responsive programming framework design + IOC architecture design + Android architecture component Jetpack
  • NDK module development: NDK basic knowledge system + underlying image processing + audio and video development
  • WeChat Mini Program: Mini Program Introduction + UI Development + API Operation + WeChat Docking
  • Hybrid development and Flutter: Html5 project combat + Flutter advanced

After the knowledge is sorted out, it is necessary to check and fill in the vacancies. Therefore, for these knowledge points, I have prepared a lot of e-books and notes on hand. These notes provide a perfect summary of each knowledge point.

3. Read the source code, look at the actual combat notes, and learn the ideas of God

"Programming language is the way the programmer expresses, and the architecture is the programmer's cognition of the world". Therefore, if programmers want to quickly understand and learn the architecture, reading the source code is essential. Reading the source code is to solve problems + understand things, and more importantly: to see the ideas behind the source code; programmers say: read ten thousand lines of source code, and practice ten thousand kinds of practices.

Mainly contains WeChat MMKV source code, AsyncTask source code, Volley source code, Retrofit source code, OkHttp source code, etc.

4. On the eve of the interview, sprint through questions

Within a week before the interview, you can start sprinting. Please keep in mind that when brushing the questions, the technology is the first priority, and the algorithm is basic, such as sorting, etc., and the intellectual questions are generally not asked unless they are school recruits.

Regarding the interview questions, I personally prepared a set of systematic interview questions to help you learn from one another:

to sum up

There is no shortcut to change your life. You need to take this path yourself. Only deep thinking, continuous reflection and summary, maintaining the enthusiasm for learning, and building your own complete knowledge system step by step are the ultimate ways to win. It is also the mission that programmers should undertake.

A series of Android learning resources that took more than a year to organize: Android源码解析、Android第三方库源码笔记、Android进阶架构师七大专题学习、历年BAT面试题解析包、Android大佬学习笔记etc.

These contents are free to share with everyone, friends who need the full version, click here to see all the contents .

Guess you like

Origin blog.csdn.net/weixin_44339238/article/details/114137137