Why is there interview job hopping?

juejin.cn/post/698317…

Introduction to interview Questions

🎯 title is the best way to test everyone’s technical level 🎯 ring the alarm bell, I hope we can recognize their own shortcomings, timely check deficiencies

1. 选择题🔽

A, multiple choice ⚠️ there are multiple choices oh ⚠️

A: member variable B: supClass C: cache_t D: bit A: member variable B: supClass C: cache_t D: bit

struct LGStruct1 {
    char b;
    int c;
    double a;
    short d;
}struct1;

struct LGStruct2 {
    double a;
    int b;
    char c;
    short d;
}struct2;


struct LGStruct3 {
    double a;
    int b;
    char c;
    struct LGStruct1 str1;
    short d;
    int e;
    struct LGStruct2 str2;
}struct3;
Copy the code

A: 48 B: 56 C: 64 D: 72 The following codes are displayed: RE1 RE2 RE3 RE4 RE5 RE6 RE7 RE8 The command output is displayed

BOOL re1 = [(id)[NSObject class] isKindOfClass:[NSObject class]];     
BOOL re2 = [(id)[NSObject class] isMemberOfClass:[NSObject class]];   
BOOL re3 = [(id)[LGPerson class] isKindOfClass:[LGPerson class]];     
BOOL re4 = [(id)[LGPerson class] isMemberOfClass:[LGPerson class]];  
NSLog(@" re1 :%hhd\n re2 :%hhd\n re3 :%hhd\n re4 :%hhd\n",re1,re2,re3,re4);

BOOL re5 = [(id)[NSObject alloc] isKindOfClass:[NSObject class]];      
BOOL re6 = [(id)[NSObject alloc] isMemberOfClass:[NSObject class]];    
BOOL re7 = [(id)[LGPerson alloc] isKindOfClass:[LGPerson class]];     
BOOL re8 = [(id)[LGPerson alloc] isMemberOfClass:[LGPerson class]];   
NSLog(@" re5 :%hhd\n re6 :%hhd\n re7 :%hhd\n re8 :%hhd\n",re5,re6,re7,re8);
Copy the code

A: 1011 1111 B: 1100 1011 C: 1000 1111 D: 1101 1111 (x + 7) & ~7 This algorithm is several bytes aligned A: 7 B: 8 C: 14 D: 16 determine the size of the following data structures

union kc_t {
    uintptr_t bits;
    struct {
        int a;
        char b;
    };
}
Copy the code

A: 8 B: 12 C: 13 D: 16 who points to the isa of the metaclass and who is the parent of the root metaclass A: self, root metaclass B: Self, NSObject C: root metaclass, root metaclass D: The root metaclass, NSObject looks up the method cache and it’s out of order. Why? A: Hash function cause, do not resolve B: hash function cause, then hash C: he save his I also boogieisland, then hash D: he mess by mess, breeze over the hill, do not resolve the message flow is A: first from the cache quickly search B: Slow recursive lookup of methodList (own and parent until parent is nil) C: dynamic method resolution D: message forwarding flow class method dynamic method resolution Class methods have metaclass (in the form of object methods), and the parent of the metaclass is ultimately NSObject, so we can prevent object methods from being implemented in NSObject by resolveInstanceMethod! C: Class methods exist metaclasses exist in the form of object methods. D: Salty radish, don’t worry! Don’t worry about what Apple wrote

2. What do you think of 🔽

2. True or false

Int c[4] = {1,2,3,4}; int c[4] = {1,2,3,4}; int *d = c; C [2] = *(d+2) @interface LGPerson: NSObject{UIButton * BTN} where BTN is the instance variable and the value is 5 points

3. The answer is 🔽

Please take it as an interview and treat it seriously. I hope you will be patient and avoid impetuous

17, how to restore the upper OC code to C++ code

How to open the assembly view process, what are the benefits?

What do x/4gx and p/x and p *$0 stand for

20. Where do class methods exist? Why do they do that?

Method binary search process in the process of slow search, please use pseudo-code to achieve

22, ISA_MASK = 0x00007ffffffffff8ULL So what is the meaning of this ISA_MASK algorithm?

23. Why are rw and RO and RWE in a class structure?

24. When does the cache start to expand and why?

Why is objc_msgSend written in a pool? How does objc_msgSend recursively find IMP?

26, Why is it possible to call NSObject when a class method is not implemented

I. Middle and senior iOS development requirements for large factory recruitment

  • Technical requirements of iOS junior engineer
    • Proficient inObjective-c language basics
    • Proficient inUIKit Cocoa Framework, etc
    • Be familiar withNetwork communication mechanism and common data transmission protocol
    • haveExperience with major open source frameworks
Necessary skills: 🔽
  • Prerequisite skills (see next item if you know all of them) Use Xcode
    • Flexible use of AFN for third-party libraries
      • MJRefresh
    • Use of various websites
  • How do I know if I can advance to the next level? Do I know how AFNetworking works
    • Understand the principles of SDAutolayout/ navigation layout library
    • Can you handle basic iOS crash/fail to compile/fail to launch?
    • Whether they have a certain work efficiency and a stable work efficiency (not that one of them is still working overtime and has a lot of bugs).
    • Whether it can handle crashes caused by third-party libraries.
    • Whether I can well integrate into the working environment, complete the work indicators of each stage, and will not let myself exhausted.
  • Conclusion iOS intermediate development to put it simply, is that you have learned the basic UI interface construction, shelves, precipitation for a period of time, you feel that they are also suitable for this industry, but also suitable, but also can accept the so-called iOS development engineers of the industry. You’re an intermediate iOS developer.
    • This precipitation time is about 1 year in the actual work, can be completed.
    • If you feel that this field is not for you, carefully consider your circumstances and decide whether to switch to another computer language or make a complete career change.
  • Technical requirements of iOS intermediate engineer
    • solidProgramming, data structure, algorithm fundamentals
    • Deep understanding ofLanguage mechanism, memory management, network, multithreading, etc
    • Proficient inCommon design patterns, frameworks, and architectures
    • Good analytical and problem solving skills
Necessary skills: 🔽
  • The required skills (see the next item if they all do) apply memory processing
    • Push handling of applications
    • Modular/unit testing of applications
    • Third party integration/centralized management/stable iteration of applications
    • Read powerful third party source code/have the ability to quickly pick up new third party libraries.
    • Be open to new features (in this case, even if you haven’t done it, you can still learn to solve any business requirement: bluetooth, for example). AR. Camera. Hardware interaction. Etc.)
    • Clearly understand how data is transferred, how the application and background exchange data, data exchange process, results, format.
    • Flexible use of multithreading.
    • The handling of various concurrent events/and the rationality/smoothness of the interface
    • Flexible use of design patterns.
  • Technical requirements of iOS senior engineer
    • To solveKey issues and technical difficulties in the r&d process
    • tuningEquipment flow, performance, power, etc
    • The strongSoftware design ability
    • There are internal principles of iOSA deep understanding
Necessary skills: 🔽
  • Componentization/architectural layering of the application of required skills
    • Data structure, operating system, computer network have their own understanding and cognition
    • Shell script/Python /Ruby/JS at least one.

Summary of Technical Planning – Four major categories:

IOS underlying principles of performance optimization and architecture multithreading, network data structure algorithm

Basic principles of iOS (required) :

IOS development necessary ability, but also one of the big factory interview quickly screening talent.

Object underlying principle Pointers and memory interview Weak Reference Block principle AutoreleasePool principle Runloop principle Runtime correlation and message forwarding principle…. componentization

🔽
  1. When is the weak keyword used, and how is it different from assign?
  2. Deep copy and shallow copy
  3. A quick word about the @Autoreleasepool data structure?
  4. When is autoreleasePool released?
  5. Let’s talk about iOS memory partitioning
  6. How to solve circular reference?
  7. How does Runloop relate to threads?
  8. Where is the isa pointer to an object?
  9. How does the Runtime implement the weak attribute?
  10. Difference between Load and initialize
  11. .

Performance optimization and architecture capability: DACHang attaches great importance to this area at present;

① Performance optimization: tableView optimization -> interface lag principle -> APP performance analysis -> project optimization ② Architecture: design mode, decoupling means, componentization….

🔽
  1. What are some of the causes of tableView stutter?
  2. How to improve the smoothness of tableView?
  3. What aspects should APP startup time be optimized?
  4. How do I reduce the size of my APP package?
  5. How do I check for memory leaks?
  6. What are the common design patterns for iOS?
  7. What are the disadvantages of routine meetings?
  8. MVC, MVP, MVVM mode
  9. Six design principles in programming?
  10. .

Multithreading, network ability: iOS advanced development, should understand, and familiar knowledge;

Multi-threaded principle thread pool GCD lock related principle network design network framework understanding of the development process of some requirements combined with multi-threaded or network design!

🔽
  1. Processes versus threads?
  2. What is multithreading?
  3. What are the advantages and disadvantages of multithreading?
  4. What is the difference between concurrency and parallelism in multiple threads?
  5. Deadlocks in multiple threads?
  6. How does GCD work?
  7. Layer 7 protocol for the network?
  8. What’s the difference between Http and Https? Why is Https more secure?
  9. Explain the three handshakes and the four waves?
  10. The Cookie and Session
  11. .

Data structure algorithm ability ratio is relatively large: generally, large companies will have some written tests: although not the core position for data structure algorithm requirements are not very strict, but there will be some conventional data structure and algorithm questions

Sorting data structure design complexity discusses some brain teaser algorithm problems……

Often asked:
  1. What’s the difference between a linked list and an array? What is the time complexity of insert and query?
  2. How is a hash table implemented? How do I resolve address conflicts?
  3. Bubble sort, select sort, insert sort, quick sort (two way, three way) can write what?
  4. Linked list question: How to detect if there are rings in the linked list? How do I delete all nodes in a linked list that are equal to a certain value?
  5. Array problem: how to find two elements in an ordered array whose sum is equal to a given value? How do I merge two ordered arrays and keep them ordered?
  6. Binary tree problem: how to reverse a binary tree? How do I verify that two binary trees are exactly equal?
  7. How many types of data structure storage are commonly used? What are their characteristics?
  8. .

Underlying technology + interview collection information: github.com/cz-add/iOS_…

IOS underlying + + iOS reverse + Swift iOS share audio and video + giant interview: www.bilibili.com/video/BV1v5…