sequence I am a senior undergraduate student (majoring in software engineering), and I applied for a job in iOS development. I interviewed with about 30 companies in total. After each interview, I organized my interview experience and expanded my answers in a timely manner. Now I have selected the high-quality interview experiences, compiled them, and shared them with everyone. [[228558]] Table of contents - Internship Interview
- Baidu
- Today's headlines
- Are you hungry?
- SAP
- Campus recruitment interview
- Alibaba
- Baidu
- Tencent
- Meituan Dianping
- Today's headlines
- JD.com
- Millet
- Thunder
- Convinced
- SenseTime
- SF Technology
- CMB Network
- Internship Interview
Baidu Baidu iOS - What are the design patterns in iOS? Give two examples
- What is the function of property
- Event Propagation and Responder Chain
- Under ARC, which objects are added to the autorelease pool?
- How to manage the life cycle of objects in child threads
- If you use Category to add a method with the same name as the base class, and then call the method, the code in Category will be executed instead of the base class code.
Computer Network - HTTP message format
- The encryption process of https
- What are the response codes?
- Difference between TCP and UDP
- How does TCP ensure reliable transmission? What are the mechanisms?
- Briefly describe the equipment used for switching networks, starting from the physical layer upwards
algorithm - Find the kth largest number in an array, requiring a time complexity of O(n)
Baidu Second Interview iOS - Property modifiers
- What are the attribute modifiers?
- The difference between assign and weak
- assign in MRC and ARC
- Usage of copy
- autoReleasePool
- When is autoReleasePool used?
- What objects will be added to the autoReleasePool
- Under what circumstances is autoReleasePool released
- RunLoop
- The difference between the three RunLoop modes
- When to use RunLoop
- The difference between Delegate, Block and Notification
algorithm - How to determine whether a linked list has a cycle
- How to determine the entrance of a ring
- How to simulate a queue with two stacks
Computer Network - Difference between TCP and UDP
- The process of TCP three-way handshake and why three-way handshake is needed
Today's headlines Today's headlines algorithm - Verify whether a string is a valid IPv4 address
iOS - Will an object placed in @autuReleasePool be released when the autorelease pool calls the drain method?
- @aotuReleasePool nested use, how object memory is released
- About blocks
- In Masonry's block, using self will cause a circular reference?
- What if it is in a normal block?
- So, if we only use the underline attribute to access in a normal block, will it cause a circular reference?
Computer Network Today's headlines second page algorithm - Given two ordered arrays, where the length of array A is twice that of array B, and the number of valid digits is the same as the size of array B, merge the two arrays, the time complexity is O(n), the space complexity is O(1)
iOS - How to Check for Circular References
- When the delloc method is executed, will the object be recycled?
Today's headlines three sides Computer Network - The difference between http and https
- The encryption process of https
- Have you heard of man-in-the-middle attacks?
- Can https prevent man-in-the-middle attacks?
iOS - Comparison of memory management mechanisms in C++, Android, and iOS
Are you hungry? Hungry? warm up - iOS Contact Time
- The most rewarding place
- I saw sqlite on my resume. Could you briefly explain the implementation principle of sqlite?
- If you were asked to design an ORM, what bottlenecks would you encounter?
database - Describe the role of primary keys and indexes
- Do you know about database engines?
- Describe normal stored procedures and transactional stored procedures
- Describe the third normal form and BCNF normal form
Computer Network - Session and Cookie
- The encryption process of https
- How to prevent https certificates from being tampered with
- Have you ever heard of symmetric encryption and asymmetric encryption?
iOS - What basic knowledge of iOS do you know?
- The difference between AFNetworking 2.0 and 3.0
- Is automic necessarily thread-safe?
- How is messaging in iOS implemented step by step?
- What is the difference between category and extension
- How to set private properties in iOS
- Performance comparison between serial queues and synchronization locks in protecting thread safety
- Are parallel queues executed simultaneously?
- What are the locks in iOS? How much do you know?
- The architecture of the UIKit framework in iOS
- The relationship between UIView and CALayer
- The relationship between UIView, CoreAnimation and CoreGraphics
- You should know SegmentFault, what is this error in iOS, what about StackOverFlow
- What are the performance differences among GCD, NSThread, and NSOperation?
algorithm - Tell me what you think is the most difficult thing to understand during the learning process
- Have you studied the algorithm ideas involved in network caching?
other - What are the full names of CSS and HTML?
- The difference between object-oriented and process-oriented
Ele.me Second Side warm up - Some questions about the projects I have participated in
- Xiangwen is a startup project. How do we collaborate with everyone?
- ...
- How were your grades in college? (Would I say my grades were bad? Seriously?)
design - For example, there is a scenario where an app has many horizontal bars, each of which has many labels, and these labels can be dragged
- How to design
- What if the tabs in one column could be dragged to another column?
- Should I choose to rewrite the drag method or use UICollectionView?
- Should I use the whole thing as a UICollectionView, or should I use a UITableView for the whole thing and use a UICollectionView for each horizontal column?
SAP SAP side Computer Network - The concept and function of data link layer frames
- ARP routing protocol
- What are the protocols of the transport layer?
iOS - How UIView is designed
- Difference between CALayer and UIView
algorithm - How to perform an operation of swapping two linked lists
SAP Second Interview Computer Network - Briefly describe the five layers of computer networks, starting from the bottom
- How does the ARP protocol work?
- Difference between TCP and UDP
- Status Code
algorithm - Given an int type number, determine whether the number is a palindrome
Campus recruitment interview Alibaba Alibaba Self-introduction ... database - Improve the efficiency of adding, deleting, modifying and checking
- Database synchronization
operating system - Steps for inter-process communication
Computer Network - What is the difference between http and https
- Transport layer optimization protocol
Design Patterns - What design patterns do you know? (Me: All design patterns, M: Oh?)
- Talk about the factory mode
- The difference between factory pattern and abstract factory
iOS - How to understand the runtime
- What can be done at runtime
- UIViewController Lifecycle
- When will loadView be executed? Will it be executed?
- How to solve the deadlock problem
- What should I pay attention to when multiple threads access a resource at the same time
- What is the principle of lock
- What are the function parameters usually passed in?
- If you pass in an object and make some changes in the function, what should you do if you don't want to change the original object?
- There are several types of copying in iOS
- What behaviors can produce deep copies?
- Copied Application
java - How to implement value passing and reference passing in java
- The difference between Java memory management and OC
algorithm - my name is ZX becomes ZX is name my
- And analyze the time complexity and space complexity
Data Structure - Using two queues to simulate a stack
Alibaba Second Interview Small talk - Mian: Haha, I see you use this name a lot, nineteen. Do you like it very much?
- I:.......
- Mian: Then let’s get straight to the point.
project - Briefly talked about the contents of several projects
- Request to share desktop to view project code
- Describe the project's architectural process and details
- How to slim down a project
algorithm - Write bubble sort (write three versions)
Conclusion - Noodles: Wait a moment, we will arrange a noodle
- Mian: Have a meal quickly.
- Me: Oh ok…
Alibaba Add Noodles Self-introduction ... algorithm - Encapsulates a string reverse API
programming - There are four threads A, B, C, and D. After A, B, and C are executed, D is executed, and A, B, and C are executed at the same time.
- A, B, C, D add execution time respectively
- A, B, and C all modify a resource
question - Steps for communication between threads
- Talk about the source code of the open source framework
- Now that we are talking about AF, let’s talk about the basic differences between NSURLConnection and NSURLSession.
- One thing that shows your passion for iOS
- iPhoneX is launched, what changes should we make
- What changes were mentioned in WWDC11?
Alibaba HR interview Self-introduction - Mian: This is the simplest self-introduction I have ever heard today.
- Me: Serious face
Project related ... Company internship related ... Understanding of oneself ... Alijia Noodles II Small talk At 7 o'clock in the evening, the phone rang, ring ring ring ~ - Interviewer: I called you in for another interview. You must have had 5 rounds of interviews today.
- Me: Yeah...
project - Details of Xiangwen as a startup project
- background
- Membership Management
- How it works
- Technical Difficulties
- Future Development
practice - Specific internship experience
- Why didn't you choose to intern in a large company?
technology - How to understand iOS system
- What are the differences between iOS and Android in terms of performance?
- How design patterns are reflected in iOS
- How to optimize the project
Self-awareness - Position yourself with three key labels and give sufficient evidence
Ali recruits a new staff project - Share your previous projects and what were the difficulties?
- I just mentioned some of the technical points you usually study, so can you share one or two?
iOS - How to use Runtime to convert dictionary to model
- Have you studied open source frameworks? What have you learned?
- How to design to ensure that changes in third-party libraries have minimal impact on the project itself
- Are there any auxiliary tools to detect memory leaks?
- What are the ways of memory leaks
- How does a block cause the reference count to increase?
Ali recruits second interview warm up - Confirm whether there is an offer and whether the tripartite agreement has been signed.
- What did you mainly do during your internship at Meituan?
iOS - How to understand JSBridge work
- Do you think there are any disadvantages to this working principle?
- What open source projects do you know?
- Why do people use AFNetworking?
- What performance optimizations has AFNetworking made?
- What are the highlights of Masonry?
- How to solve the circular reference of Block
- The relationship between Runloop and thread
- What's wrong with MVC?
- Have you heard of MVP?
- If you were asked to design dispatch_once, how would you design it?
Computer Basics - Query a keyword from the browser and show the whole process from computer principles to computer networks
- Do you know how to parse the final response message to the browser?
algorithm - An algorithm: Two sequences A and B, undergo the minimum number of operations to make the sequence change from A to B
project - Have you participated in open source projects?
- Were there any challenging projects or internships you did before?
Baidu Baidu Self-introduction ... algorithm - Print prime numbers between 100 and 200
project ... iOS - How to tune UITableView
- iOS memory management model
- ARC full name
Computer Network - Difference between TCP and UDP
- Three-way handshake
database - A scenario, handwritten SQL query
Baidu Second Interview Self-introduction - The interviewer seemed to know me, and there was no self-introduction session.
algorithm - Reversing a linked list
- Three ways to traverse a binary tree
iOS - Introduction to iOS Memory Management
Computer Network - Difference between TCP and UDP
- Handwritten TCP three-way handshake
Design Patterns Baidu three sides Technology related - Spend 10 minutes talking about a technical point
- The principle of JSPatch and how Apple detects it
other - Project details (Xiangwen)
- How to lead a team
- How coordination works
- Project Background and Objectives
- Results
- Planning for yourself
- Is there a target role model?
- Is it too stressful to come to Beijing?
- Selection of large companies and start-ups
- How to choose a large company of the same level
- A: Improve your technology
- How to improve it specifically:
- A: Three aspects...
- The interviewer introduced how Baidu can improve its technology (about 10 minutes)
Tencent Tencent's side Self-introduction ... Small talk - I see you are applying for an iOS position. Currently there is no iOS position in Chengdu.
- Why did Northeastern University come to Chengdu?
Computer Network - How many layers does a computer network have?
- Difference between HTTP and HTTPS
- TCP three-way handshake
project - Introduce a typical project
iOS - The difference between MVC mode and MVVM mode
- iOS memory management
- How to solve iOS memory management problems
- The difference between iOS memory management and Android memory management
Conclusion - I think you are an excellent undergraduate.
- Introduced the situation in Chengdu. Currently, most of the positions are for Android, and there are no iOS positions.
- Would you mind switching to Android development or Weex development if you join?
- Wait a minute, I'll introduce you to the second interview.
Tencent Second Interview Self-introduction ... project - Introduce a better project
Ask according to resume - How to control the bloat and thinness of MVC pattern C and how to write it yourself
- Shouldn't M interact with V? Shouldn't M be displayed on V? (Fishing enforcement)
- Difference between Unicode and UTF-8
- What is a database transaction?
- What can JS be used for?
- Can JS be used to develop servers? What engine is used to develop servers?
Meituan Dianping Meituan Dianping Self-introduction ... iOS Basics - What is the difference between C++ and Objective-C?
- What can you do with OC's dynamic features?
- How to tune UITableView
- Event delivery and event response
- What is the difference between MVC and MVVM
- Memory layout of iOS
- Introducing ARC
- Specific steps of the message mechanism
iOS Project - How to layout waterfall flow
- There are multiple styles of cells, how would you design them?
algorithm - Two ordered arrays, find the Kth largest number
Computer Network - Difference between TCP and UDP
Meituan Dianping Second Interview Self-introduction - Your resume is not found here.
- Me: Ah? Then there won’t be any advantage.
- Mian: No, as long as you speak well, that’s fine.
iOS operating system - How do processes communicate?
Computer Network - TCP three-way handshake specific process (drawn)
- TCP three-way handshake only allows one flag to be passed. How to control it?
- Why do we need a three-way handshake?
- TCP Congestion Control
Brainteaser - There is an irregular polygon in the coordinate system. Determine whether a point is in it.
algorithm - Find the maximum distance in a binary tree
Meituan Dianping three sides Self-introduction - No resume
- Me: I’ll send a copy via my phone.
- So I added WeChat
project - Enjoy
- background
- Teamwork
- How to design a product
- Operational Results
Technology related - Do you know the authentication protocol?
- Detailed communication process of SSL (paper drawing)
- JSPatch Principle
- How to simulate the hot update process
Product Manager - How to design a homepage
- What qualities should a product manager have?
- What should product managers deliver to programmers?
- Generally speaking, when there are problems with the cooperation between the product and the programmer, where are the details reflected?
personal - What do you think is your greatest strength?
- Are you a perfectionist?
- Are there people who feel like trash in teamwork?
- Do you feel that the code written by others is rubbish when working in a team?
Meituan Dianping HR Interview Small talk - The interviewer said he really wants you to stay in Chengdu.
- You are from Mianyang, right? I am from Deyang. I went to university in Shanghai and have been working in Shanghai ever since.
- Introduced detailed information about Meituan's catering business group (I didn't ask...)
question - Request for a salary
- Desire City
- Future plans
project - Mainly asked about the details of Xiangwen
Ask a Question - May I ask if my score has a high chance of being SP?
- What is the top standard of SP?
- When will the follow-up notice be sent?
Today's headlines Today's headlines Self-introduction - I have your resume, but I still want to hear you introduce yourself.
algorithm - Merge two sorted arrays
- Reversal of a Binary Tree
operating system - Difference between threads and processes
- Difference between heap and stack
iOS - The difference between load and initialize and their applications
- Will writing code in load and initialize affect startup?
- Introducing multithreading in iOS
- What is the relationship between GCD manually created threads and GCD provided API threads
- Have you read the source code of GCD?
Today's headlines second page algorithm - Implement a LUR Cache, including read and write operations
iOS - Block related
- Sending a network request
- MVVM
- KVO
- Message Mechanism
Today's headlines three sides algorithm - Find the closest common parent of two nodes
Small talk - What have you improved since the last interview?
- Give an English introduction
- What offers have you received?
- Why choose to go to Tiantian Werewolf
iOS - AFNetworking source code architecture
- How to design a network library yourself
- Masonry source code architecture
Computer Network - TCP three-way handshake
- TCP's four waves
JD.com JD.com Self-introduction ... project - Pick a typical project to share
iOS - What are the tuning strategies for iOS development?
- What are KVO and KVC
- What is the factory pattern?
- The difference between factory pattern and abstract factory
- How to design singleton pattern
- What are multithreading?
- How to use semaphores in GCD
- One queue is responsible for inserting data operations, and one queue is responsible for reading operations. How to ensure smooth operation of a stored queue at the same time?
- Prototype Pattern
Millet Xiaomi side Self-introduction - Q: Interviewer, what position do you hold?
- Face: I am the backend developer
- I:......
algorithm - Implementing the reHash method details
Computer Network - What happens when you enter a domain name in your browser?
Xiaomi Mi 2 Small talk - Q: Interviewer, what position do you hold?
- Surface: Android system layer development
- I:......
algorithm - Multiple tasks have start and end times. Tasks are executed serially. The rules are as follows: the end time of the previous task and the start time of the next task cannot intersect. Then the path with the most executions is
Java multithreading - There is an inner class in a method. A temporary object of the inner class type is declared. Then a child thread is opened to access the temporary object. Finally, this method is called in main. Can the program run normally? Will a wild pointer exception occur?
Java Basics - The difference between weak references and strong references
Thunder Thunder side Self-introduction iOS - Difference between MVC and MVVM
- What can be reused in MVVM
- How to do automatic layout
- Pros and cons of storyboard and pure code layout
- SDWebImage's caching strategy
project algorithm Convinced Deeply convinced Self-introduction There is a Lenovo laptop in front of me. - Me: What kind of development does the interviewer do?
- Face: I am a Linux developer
- I:......
Interview experience - I took a question paper that looked like it was given by the company, several pages long, and flipped through the questions all the time, and then asked the questions I saw that were appropriate.
algorithm - Pattern string matching (using a question from a backend payment platform of Niuke)
- Specific content: Ordinary character + (wildcard)? + (wildcard)*
- Several ways to traverse a binary tree
Written test questions (may test whether cheating is allowed) - Several ways to persist iOS data
- How to persist custom files
- Write the corresponding code
C - How to determine whether a C language structure is equal
- So how do you determine if an object is equal in Java?
- The role of static modifier in C language
database - Characteristics of database transactions
Sangfor Second Interview Self-introduction - Me: Interviewer, what position do you hold?
- Interviewer: Oh, I’m not an iOS expert, so I may not be able to interview you about iOS. Let’s just ask you about algorithms.
- I:......
Interview experience - The same is true of constantly turning over interview questions
- It is basically an algorithm, which evaluates a person's ability based on the algorithm's ability
algorithm - Design an algorithm to find pi
- The text can only be traversed once, and the number and position of multiple keywords need to be found
- Find the number of 1s in the binary representation of a 32-bit number (need to achieve the optimal solution)
SenseTime SenseTime Technology Self-introduction - Interviewer: Sorry, I can’t seem to find your resume here, so you need to introduce yourself in more detail.
- I:......
algorithm - Count sheep. Given an initial number N, the first count is N, the second is 2N, and so on, until kN. Then find the value of k when all the numbers 0-9 appear.
iOS - Introducing property modifiers
- The difference between bounds and frame
- How to resolve circular references in MRC
- Introduce the implementation of multithreading
- Introduce the database in iOS and describe the table structure of sqlite
- What is KVO and what should we pay attention to when using KVO
- Circular references in GCD
SenseTime Second Interview Self-introduction - Me: I have been involved in iOS development for three years and have launched 5 projects...
- Face: Wow, you’ve been developing for longer than me, and I don’t have as many projects as you (sorry, big guy), but I’m doing low-level SDK development
algorithm The interviewer didn't explain the question clearly. Then we discussed how to design the questions and talked about ideas. Design Patterns - How to design the architecture when you get a project?
- How does the MVC model interact?
- How to implement the proxy mode in UITableViewCell
- Talk about how to implement the KVO mode
Computer Network - Details of the three-way handshake
- Status Code
- How to design a caching strategy
operating system - Talk about the underlying principles of multithreading
iOS - Differences between memory management modifiers
- Introduce deep copy and shallow copy
- Describe the runtime
- What can runtime do?
- Describe runLoop
- What can runLoop do?
- Introducing multithreading in iOS
- What are the commonly used APIs of GCD
- What should I pay attention to when using GCD?
- iOS memory management
- iOS Sandbox
SenseTime Technology Three Sides Self-introduction - Me: I have developed five apps that have been put on the shelves
- Mian: Wow, so many
project - motivation
- process
- Role Playing
- Gains
- What are the shortcomings
- We also discussed the feasibility of each project (including entrepreneurial projects)
technology - Git related operations
- The underlying principle of multithreading
Life - Career Planning
- Do you want to work on front-end UI or high performance when working on iOS?
- Do you want to work on the front-end mobile terminal or are you willing to work on the back-end?
SenseTime HR Interview - Have you understood the relevant work content? Is it consistent with your expectations?
- Do you know the company?
- Let me introduce it to you.
- Work city selection
- Are there any offers currently?
- Internship time
- Characteristics of the target company
SF Technology SF Technology Self-introduction ... project Computer Network - Three-way handshake process
Java - The difference between Java references and objects
Design Patterns - Explain the Singleton Design Pattern
- Application Scenario
- The difference between static methods
algorithm - The principle of quick sort
- Segment Tree
iOS - MVC Pattern
- Difference between MVVM and MVC
SF Technology HR Interview Self-introduction project - Talk about the best project
Small talk - What other companies have you interviewed?
- How do you view the high pressure in Shenzhen?
- Why do students from Northeastern University come to Chengdu for interviews?
- Tell us about your family
- Family members' suggestions on work locations
- Your choice of working city
- Pros and Cons
My Question - What are the main jobs of iOS?
- How is the salary
- Is overtime serious?
- Does the company have a cafeteria?
CMB Network CMB Network Self-introduction ... project - Enjoy the details
- Have you done log management?
- How to obtain updated version content?
iOS - iOS memory management
- Project Architecture Diagram
- What is iOS Push?
- The browser can share things to a specific APP. How is this achieved?
- Have you shared anything?
CMB Online Second Interview Self-introduction - Interviewer: You have been interviewed so many times, it is too tiring to introduce yourself, just skip it.
- Me: (China is a good interviewer!)
project - Enjoy the details
- If you ensure the smooth operation of the team
- Future goals
CMB Online HR Interview Self-introduction project Small talk - Ranking
- Are there any scholarships?
- Are there any failed courses?
- Which city do you intend to visit? I'm not sure if there are any iOS jobs in Chengdu. I need to ask.
- Pros and Cons
Conclusion To all the friends who have read this, I wish you success in the autumn recruitment! |