Tencent T2 Daniel will teach you personally! Four years of Android interview problems encountered, the full version is open for download

Dachang offer is the pursuit of every technical person?

I think the dream of every programmer is probably to find an offer from a major manufacturer. I think this is normal. This is not our after-dinner talk but the pursuit of every technical person. The technical atmosphere and technical standards of Ali, Tencent, Meituan, ByteDance, JD, etc. are still significantly better than those of some entrepreneurial companies/small companies. If you can practice in such a company for several years, I believe that you can The improvement is still very large. But not everyone can enter the big factory, which often depends on our ability, education, interview performance and other factors.

Now when you are interviewing a big company, you say that you don't have the necessary knowledge for an interview with a big company, such as Android Jetpack, coroutine, Jetpack Compose, Flutter, etc. However, you have really entered a big factory, and you may not need this knowledge for several years, so you should write CRUD honestly.

Java related

1. The signature of the overloaded function (the difference is whether it is an overloaded function)

Answer: Method name + parameter type + parameter order (the return value is not)

2. The working principle of finalize

Answer: Once the garbage collector is ready to release the storage space occupied by the object, it first calls finalize(), and only in the next garbage collection process will it actually reclaim the object's memory. So if you use finalize(), you can During the collection period, some important cleaning or cleaning work is carried out. In addition, the system does not guarantee that it will be called when it is garbage collected, so it can be said that it is not necessarily related to the object being recycled.

3. The creation process of an object

Answer: For example, there is a Dog class:

1. Even if there is no static, the constructor is actually a static method, so when Dog's static domain or static method is accessed for the first time, Dog's class object will be loaded.

2. When loading Dog's class, it may be found that it has a base class. At this time, the loading of Dog is suspended first, and the base class is loaded instead. Therefore, the static field of the base class is initialized before the subclass.

3. After loading the class file, a class object of this class will be created, and all actions related to static initialization will be executed, so static initialization is only performed once when the Class object is first loaded.

4. When using new, first allocate enough memory space on the heap for the Dog object. This memory control will be cleared, and all instances are initialized to default values, including the base class.

5. Perform initialization of all field definitions, starting from the base class.

6. Execute the constructor. (The constructor of the base class will be executed in the first line)

4. The destruction of objects is carried out in the reverse order of creation.

5. Final methods and classes are not allowed to be overridden and inherited. Private implements final by default.

6. Briefly describe the characteristics of internal classes

7. The formal parameter can be regarded as a local variable, that is to say, the formal parameter is equivalent to a local variable a defined in the method. When c is passed in, only the object pointed to by c is given to a

8. The finally block is executed before the return statement in try or catch

9. Briefly describe the default classLoader and functions in jvm

10. The control expression after the switch statement can only be short, char, int, long integer types and enumeration types, and cannot be float, double and boolean types. String type is supported by java7

11. Rewritten features

12. != and ==, when used in basic types, is the comparison value is the same; when used in reference types, is the comparison object is the same, compare the memory address

13. Null can be coerced into an object of any type, so static methods are executed through it

14. How to terminate a thread

15. Can static properties and static methods be inherited?

16. List various List, Set, Map, Queue and tell their similarities and differences.

17. List several thread pools

18.Explain the java memory model

19. Explain the atomicity of java code

20. Explain the volatile field

21. Explain the synchronized field

22. Use of Lock

23. The difference between wait() and sleep()

24. Deadlock conditions

In 2013, the author switched from Java development to Android development. He has been in a small factory, and he has also been to a large factory such as Huawei and OPPO. In April of 2018, he has been in Ali until now.

I have participated in many interviews and interviewed many people as an interviewer. I know that most junior and intermediate Android engineers want to improve their skills. They often grow up on their own. The unsystematic learning effect is inefficient and long, and it is easy to encounter the ceiling technology stagnation!

I have compiled a list of the most systematic Android development mainstream technologies at the Ali P7 level, which is especially suitable for in-depth learning and improvement of small partners with more than 3-5 years of experience.

Mainly include Ali, and the mainstream architecture technology of ByteDance, Tencent, Huawei, Xiaomi, and other first-line Internet companies. If you want to learn Android development in depth and become a qualified senior engineer, you can bookmark these advanced Android technology selections

I have collected and sorted out the interview questions of Alibaba, Tencent, ByteDance, Huawei, Xiaomi and other companies in the past few years, and sorted out the interview requirements and technical points into a large and comprehensive "Android architect" interview Xmind (in fact Expected to spend a lot of effort), including the knowledge context + branch details.

Java language and principles;
big factory, small factory. Android interview first see if you are familiar with the Java language

Advanced UI and custom view;
custom view, the basic skills of Android development.

Performance tuning;
data structure algorithms, design patterns. All of the key foundations and key points need to be skilled.

NDK development;
future direction, high salary is bound to be.

Cutting-edge technology;
componentization, hot upgrade, hot repair, frame design

There are a lot of materials for learning Android on the Internet, but if the knowledge learned is not structured, and when you encounter problems, you just taste it and stop studying it in depth, then it is difficult to achieve real technological improvement. I hope that this systematic technical system will provide you with a direction reference.

When I was building these technical frameworks, I also sorted out the advanced advanced tutorials of the system, which will be much better than my own fragmented learning effect, visible on GitHub; "Android Architecture Video + Study Notes"

Of course, it is not easy to learn and master these abilities in depth. Everyone knows how to learn and what work intensity is as a programmer, but no matter how busy the work is, I have to spare 2 hours a week to study.

%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)**

Of course, it is not easy to learn and master these abilities in depth. Everyone knows how to learn and what work intensity is as a programmer, but no matter how busy the work is, I have to spare 2 hours a week to study.

Within half a year, you will be able to see the changes!

Guess you like

Origin blog.csdn.net/m0_52308677/article/details/112987419