Can’t get people with the trouble of opening an Android job with a salary of 40W+? I found this basket unexpectedly

Author: handsome

Lead

March is about to begin. At the pace of previous years, March and April are the peak seasons for job-hopping, which is what people often call gold three silver four.

But this year's recruiters and job seekers will find it difficult to find the right job. You who resigned barely at the end of 2020, are you okay now?

Xiaobian I have made my own plans a long time ago, and set my own target annual income target. After the eighth day of the Lunar New Year, I started to invest in my resume. I wanted to start investing in large Internet companies such as ByteDance, Tencent, and Ali. After waiting for half a month, I would invest in medium-sized Internet companies if I was brushed.

Fortunately, just a few days after I submitted my resume to ByteDance, I received the notice of the interview and finally got the Byte Offer at the end of February . Let me share with you the interview process of ByteDance.

Detailed interview questions

[ 1 side-basic side ]

  1. When you developed Android, how did you adapt the px of the UI draft?

Android’s current stable and efficient UI adaptation scheme, AndroidAutoSize, today’s headline screen adaptation scheme, and today’s headline-through reflection correction system’s density value dpi: screen pixel density refers to the number of pixels per unit size specified on the system software. It is often a fixed value written in the factory configuration file of the system; ppi: It is also the screen pixel density, but this is a physical concept, and it exists objectively and will not change. dpi is a value manually specified by the software after referring to the physical pixel density, which ensures that the physical pixel density in a certain interval uses the same value in the software; dp plus adaptive layout and weight ratio layout can solve 90% The adaptation problem . Because not all 1080P mobile phones have a dpi of 480, for example, Google’s Pixel2 (1920*1080) has a dpi of 420; width and height qualifier adaptation: exhaust the width and height pixel values ​​of all Android phones on the market, set The resolution of a reference, other resolutions are calculated according to this reference resolution, in different size folders, according to the size of the corresponding dimens file. But it has a fatal flaw, that is, it needs to be accurately hit to fit, and the size of the App package will also become larger.

  1. Two Integer objects with equal values, == compare to determine whether they are equal?
  2. Activity A jumps to Activity B, Activity B then presses the back key to go back, the life cycle of the two processes
  3. Can child threads be context.startActivity() (such as ApplicationContext), will there be any problems?

It is okay to write a demo and try it. But what will be the problem hasn’t been figured out...

  1. The overall process of the Handler mechanism; Why does Looper.loop() not block the main thread; IdHandler (idle time mechanism); The specific implementation of postDelay(); The difference between post() and sendMessage(); What problems need to be paid attention to when using Handler and how to solve it ?

The questions are very detailed, so you can prepare as much as you can. They encapsulated a set of Handler to avoid memory leaks

  1. When the Native, H5, and RN pages are mixed to jump, how to realize the bridge of page clearing?

For a project that you have done yourself, just explain the principle clearly, and draw a picture if you don’t explain it clearly.

  1. How to calculate the percentage of the visible part of a View on the screen?
  2. ClassLoader's parent delegation mechanism-
  3. Briefly introduce the principle of Https
  4. What causes the memory leak and how to fix it?
  5. How can I ensure that I download a large picture without oom?
  6. Have you done any UI optimization and what have you done?

Debug GPU overdrawing and reduce Overdraw to a reasonable range; reduce the nesting level and the number of controls, keep the view tree structure as flat as possible (use Hierarchy Viewer for easy viewing), and remove all views that do not need to be rendered; Use GPU to configure the rendering tool, locate the specific step where the problem occurred, use TraceView to accurately locate the code; use tags, merge to reduce nesting levels, viewStub delayed initialization, and reuse of include layouts (used in conjunction with merge)

  1. What is the difference between the interaction between WebView and JS, shouldOverrideUrlLoading and onJsPrompt-
  2. Have you been in contact with Flutter and Kotlin?
  3. Other project related issues
  4. Algorithm-Binary tree outputs k-th level node elements

[External link image transfer failed. The source site may have an anti-leech link mechanism. It is recommended to save the image and upload it directly (img-5xoVufMQ-1614522338816)(//upload-images.jianshu.io/upload_images/24244313-c4ab28a30b22da85.png?imageMogr2 /auto-orient/strip|imageView2/2/w/300)]

2 Sides-Project Special

  1. When the Native, H5, and RN pages are mixed to jump, the bridge of page clearing is realized
  2. Design and Difficulties of Page Hybrid Framework
  3. Design of RN universal container
  4. User behavior monitoring program design
  5. JS error management program
  6. RN page monitors user behavior and JS error management, what are the gains and optimization points in the discovery of problems
  7. What are the advantages of Meituan RN over native RN

[ 3 sides-deepened foundation ]

  1. Have you ever used Picasso in your company? Let’s introduce
  2. Picasso single engine, how to ensure data isolation in the case of multiple Bundles?
  3. The difference between Meituan RN and Picasso

4. Omit some project-related issues...

  1. How RN's page tracking is implemented
  2. Is the Meituan homepage an RN page? MTFlexBox principle
  3. Synchronized modifies the difference between static methods, ordinary methods, classes, and method blocks
  4. Synchronized underlying implementation principle
  5. The role and principle of volatile
  6. An int variable is modified with volatile, and multi-threaded to operate i++, is it thread-safe? How to ensure i++ thread safety? The underlying realization principle of AtomicInteger?

Use AtomicInteger to make i++ thread safe

  1. Talk about the understanding of the thread pool, and several key parameters to create the thread pool
  2. The Handler mechanism asks again...
  3. What is the difference between the Binder mechanism and the memory sharing mechanism?
  4. Java collections, introduce the usage scenarios of ArrayList and HashMap, and the underlying implementation principles
  5. The difference between ArrayList and LinkedList
  6. Algorithm-the merging of two ordered linked lists
  7. Algorithm-Input a string (without and.), regular (any combination of letters, and .), and judge whether the string is legal
  8. Briefly introduce some technical difficulties encountered in the project

[External link image transfer failed. The source site may have an anti-leech link mechanism. It is recommended to save the image and upload it directly (img-o7pYC65N-1614522338836)(//upload-images.jianshu.io/upload_images/24244313-87b69288d22e6526.png?imageMogr2 /auto-orient/strip|imageView2/2/w/255)]

4 Sides-Crossing Sides

  1. In the following code, what is the final value of str? What is the value of Integer? Will it be changed?

Test site : Java value transfer (same as question 2). Write code to test, modify the input parameters in the changeValue() method, it will not change the previous value; principle : Java programming language always uses call by value, the method gets a copy of all parameter values, that is, the method cannot be modified The contents of any parameter variables passed to it. The basic type parameter is passed a copy of the parameter, and the object type parameter is passed a copy of the object address; solution : in changeValue(), for the object type parameter, directly modify the value of the object address copy , so the address of the previous variable is not modified! If the modification is a value in the object instance, the previous variable will be modified

public void test() {
      String str = "123";
      changeValue(str);       
      System.out.println("str值为: " + str);  // str未被改变,str = "123"  
}  
public changeValue(String str) {
       str = "abc";  
}

In the following code, does it need to be blank if the object student is used again?

Summary of the usage of method parameters in Java: A method cannot modify a parameter of a basic data type (ie numeric or boolean); a method can change the state of an object parameter; a method cannot let the object parameter refer to a new object

public void test()  {
      Student student = new Student("Bobo", 15);      
      changeValue1(student);   // student值未改变,不为null! 输出结果 student值为 name:Bobo、age:15      
      // changeValue2(student);  // student值被改变,输出结果 student值为 name:Lily、age:20      
      System.out.println("student值为 name: " + student.name + "、age:" + student.age); 
}  
public changeValue1(Student student) {
      student = null;  
}  
public static void changeValue2(Student student)  {    
    student.name = "Lily";           
    student.age = 20;  
}
  • Several types of references in Java, and the use scenarios of weak references?
  • Thread pool classification, explain the next few core parameters?
  • What is the packaging process of APK?

The aapt tool packs resource files, generates R.java file, aidl tool processes AIDL files, generates corresponding .java files, javac tool compiles Java files, generates corresponding .class files, and converts .class files into .dex files supported by Davik VM apkbuilder tool Package and generate unsigned .apk files jarsigner Sign unsigned .apk files with zipalign tool to align the signed .apk files

  1. Why do APKs need to be signed? Have you learned about the specific signature mechanism?
  2. Why divide dex? SDK 21 does not divide dex, will there be any problem with loading all directly?

Seek the right answer from the passing gods...

  1. What are the common design patterns? What design patterns did you use for the JS error management solution you provided?
  2. Algorithm-Binary tree layer order traversal, odd-numbered layer reverse order traversal of nodes, even-numbered layer positive order traversal
  3. What is the plan for the next 3~5 years?
  4. What do you think are your strengths? What are the disadvantages?
  5. What is your current rank and recent performance

5 Sides-Department TL

  1. Business introduction related to the commercialization department (the core is probably that the commercialization department has high barriers, the cost of training a person is high, and it is more valuable than doing other businesses, and you can accumulate a lot of business strategy knowledge), and then ask him to ask questions
  2. Planning for the next few years? What's the plan in life?
  3. What do you think are your strengths? What are the disadvantages?
  4. What is your current rank and recent performance
  5. Why give you such a good performance?
  6. Are there any other opportunities? The situation of Alibaba's interview

6 sides-Big Boss

  1. Algorithm-array insertion, consider expansion
  2. What are the more challenging things encountered in the project?
  3. What business are you responsible for at Meituan?
  4. What are the plans for the next few years?
  5. What do you think are your strengths? What are the disadvantages?
  6. What is your current rank and recent performance

[HR surface]

  1. Both undergraduate and graduate majors are partial to hardware. Do you have relevant software experience?
  2. Are postgraduates undergraduate or take the exam by themselves?
  3. Do you have any Android development experience before going to Meituan?
  4. Why did you choose to go to Meituan? Why choose to come to Beijing?
  5. Why change jobs? What do you expect from your future work?

Golden sentence: Now my own technology growth is a bit of a bottleneck, and I have always admired your company.

  1. What is the recent performance for your current rank?
  2. With such a good performance, why not choose Meituan to change departments to see the opportunities?
  3. What was the highlight of the performance during several promotions?
  4. Where is the home? Do you have any plans to go home and develop there?
  5. Are you planning to see job opportunities like Kuaishou again?
  6. Ask some about Ali's current interview progress and situation
  7. Expected salary

to sum up:

Interview is a process of continuous learning and continuous self-improvement. If you have the opportunity, you should go out to face each other. At least you can think of the effect of checking and filling vacancies. And there are some knowledge points that you may think you know, but let you say, you may not be able to say it very well. Great.

Some things are motivated by pressure, and the knowledge points learned are all money (because most of the technicians are graded and paid according to your abilities), the skills are not overwhelming.

What do you need to prepare for the interview byte?

The ByteDance interview may be similar to other big companies, but it is this little difference that is the key point and can be different from others. You can prepare from the following aspects:

1. Deliberately prepare the source code of several interview questions. For example, when I answer some moderate interview questions, I always start from the source code point of view. For example, common collections such as HashMap, multi-threaded locks, and part of the source code of the big data framework.

2. Deliberately prepare the difficult points of the project. When meeting some major manufacturers, it is unavoidable to be asked about the difficulties of the project, and it is impossible to use ordinary bugs to vague the past. Here, you can start from the technology stack used in the project to find the difficulties that the technology stack will have in the project, and then put it into your own project, find someone you can understand, and it is best to understand it all.

3. To understand the use of the company's technology stack in a targeted manner. For example, ByteDance uses Go, everyone knows, so why don't I just take a surprise study? For example, people in the industry learned that Toutiao (ByteDance) first used the Kylin framework, and then slowly switched to ClickHouse. Then I must understand the difference between the two, and it can be combined with the business scenarios of Bytedance.

Suggest

A small suggestion on how to enter a big factory. I have always advocated the "curve to save the country" approach, and I have been spreading this approach to others. It doesn't matter if your ability background is insufficient. As long as you plan your own learning route and climb up step by step, you can always achieve your goals. Because I came from a second school, but I realized it early, so I started the internship in my sophomore year. I used the project and internship experience to make up for my lack of background, and then step by step to "freedom of offer". In many cases, it is not only giants who can succeed. You only need to be an ordinary person in action, and you can surpass many giants in thought and dwarf in action.

At last

Some of the above questions are also some of the interview questions I found on the Internet during my review. I parsed some high-quality common interview questions myself and summarized them into PDF documents, which were not shown in the article due to space reasons. A good memory is not as good as a bad pen. Always brush the interview questions with a "I should know" mentality. I have written an article in my mind and I feel that the answer will come up. However, I often get stuck when I really talk to the interviewer on the line. It is still recommended. Write each interview question again, and then do the extension. When you can write every interview question logically, there will be absolutely no problems during the interview. Need to refer to learning can go directly to my GitHub project address: https: //github.com/733gh/Android-T3 Lookup



You can check my [ GitHub ] if you need relevant knowledge , and you can ignore what you have already mastered to save time.

Guess you like

Origin blog.csdn.net/u012165769/article/details/114241388