Skip to content

Latest commit

 

History

History
executable file
·
75 lines (61 loc) · 28.7 KB

日常积累所看到的面试题集锦.md

File metadata and controls

executable file
·
75 lines (61 loc) · 28.7 KB

日常积累所看到的面试题集锦

转载:Book-Recommended-Interview

各种精选面试题

 小编会不定时更新哦,麻烦给一个赞哈。
编辑积累学习都不容易,希望大家相互鼓励。


2019各种精选面试题

标题 原文地址 文章时间 收录时间
2019年iOS面试反思总结【后续会持续总结更新】 前往查看详情 👍👍👍👍👍 2019.09.16
阿里腾讯头条美团等iOS面试总结 前往查看详情 2019.1.26 2019.2.18
12个iOS技术面试题及答案总结 前往查看详情 2019.3.6 2019.04.08
2019最新iOS面试题及答案 前往查看详情 2018.07.17 2019.04.08
大厂iOS面试题——备战2019 前往查看详情 2018.12.19 2019.04.08
iOS面试题 - 一个低调的iOS开发 前往查看详情 2019.3.1 2019.04.08
一篇很全面的IOS面试题(上) 前往查看详情 2019.4.1 7 2019.04.19
一篇很全面的IOS面试题(下) 前往查看详情 2019.4.1 7 2019.04.19
iOS面试珠玑 前往查看详情 2018.5.31 2019.04.22
我的同事金司机出的 5 道 iOS 多线程“面试题” 前往查看详情 2018.3.03 2019.04.22
中高级iOS大厂面试宝典,拿到offer率80%,金三银四将是你的新起点 前往查看详情 2019.2.15 2019.04.24
Runtime经典面试题(附答案) 前往查看详情 2019.4.21 2019.04.26
2019年,iOS大厂面试题持续更新(附答案) 前往查看详情 2019.1.26 2019.04.26
2019 全方位直击iOS面试 前往查看详情 2019.4.02 2019.05.13
2019 iOS 面试题大全(补充完整版) 前往查看详情 2018.11.15 2019.05.13
iOS 开发者 2019 面试总结 前往查看详情 2019.4.26 2019.05.16
百度/阿里/网易 iOS 面经(已入职) 前往查看详情 2017.2.16 2019.06.10
大三iOSer春招总结(腾讯蚂蚁头条京东网易) 前往查看详情 2018.5.11 2019.06.10
iOS面试题大全-点亮你iOS技能树 前往查看详情 2019.4.10 2019.08.06
iOS 面试题整理 前往查看详情 2019.7.24 2019.08.06
2019年年初iOS招人心得笔记(附面试题) 前往查看详情 2019.1.28 2019.08.06
iOS面试题 前往查看详情 2019.09.03
招聘一个靠谱的iOS 前往查看详情 2019.09.03
iOS 面试注意事项 前往查看详情 2018.07.19
Swift 基本技术点(面试) 前往查看详情 2019.08.06
iOS - 基础知识总结(OC版) 面试必看 再不看就要用swift了 前往查看详情 2019.00.00




2018各种精选面试题

目录名称 面试题内容 编辑时间 地址
iOS面试准备之思维导图 1.UI视图相关面试问题

2.Objective-C语言特性相关面试问题

3.Runtime相关面试问题

4.内存管理相关面试问题

5.Block相关面试问题

6.多线程相关面试问题

7.RunLoop相关面试问题

8.网络相关面试问题

9.设计模式相关面试问题

10.架构/框架相关面试问题

11.算法相关面试问题

12.第三方库相关面试问题
2018.05.05 前往查看详情
有感而写(面试题总结一) 1.为什么说Objective-C是一门动态的语言?

2.讲一下MVC和MVVM,MVP?

3.@property 后面可以有哪些修饰符?

4.copy和mutableCopy,深复制和浅复制?

5.什么情况使用 weak 关键字,相比 assign 有什么不同?

6.block为什么要用copy修饰?

7.这个写法会出什么问题: @property (copy) NSMutableArray *array;

8.如何让自己的类用 copy 修饰符?如何重写带 copy 关键字的 setter?

9.@property 的本质是什么?ivar、getter、setter 是如何生成并添加到这个类中的。

10.@protocol 和 category 中如何使用 @property?

11.Runtime 如何实现 weak 属性?

12.@synthesize和@dynamic分别有什么作用?

13.用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题?

14.@synthesize合成实例变量的规则是什么?假如property名为foo,存在一个名为_foo的实例变量,那么还会自动合成新变量么?
2018.03.15 前往查看答案
iOS面试题 Published by iOS收藏家 1.设计模式是什么? 你知道哪些设计模式,并简要叙述?

2.MVC 和 MVVM 的区别

3.#import跟 #include 有什么区别,@class呢,#import<> 跟 #import””有什么区别?

4.frame 和 bounds 有什么不同?

5.Objective-C的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?

6.@property 的本质是什么?ivar、getter、setter 是如何生成并添加到这个类中的

7.@property中有哪些属性关键字?/ @property 后面可以有哪些修饰符?

8.属性关键字 readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那种情况下用?

9.什么情况使用 weak 关键字,相比 assign 有什么不同?

10.怎么用 copy 关键字?

11.用@property声明的 NSString / NSArray / NSDictionary 经常使用 copy 关键字,为什么?如果改用strong关键字,可能造成什么问题?

12.浅拷贝和深拷贝的区别?

13.系统对象的 copy 与 mutableCopy 方法

14.这个写法会出什么问题:@property (nonatomic, copy) NSMutableArray *arr;

15.如何让自己的类用 copy 修饰符?如何重写带 copy 关键字的 setter?

16.写一个 setter 方法用于完成 @property (nonatomic, retain) NSString *name,写一个 setter 方法用于完成 @property (nonatomic, copy) NSString *name

17.@synthesize 和 @dynamic 分别有什么作用?

18.常见的 Objective-C 的数据类型有那些,和C的基本数据类型有什么区别?如:NSInteger和int

19.id 声明的对象有什么特性?

20.Objective-C 如何对内存管理的,说说你的看法和解决方法?

21.Objective-C 中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?如果想延时执行代码、方法又是什么?

22.Category(类别)、 Extension(扩展)和继承的区别

23.我们说的OC是动态运行时语言是什么意思?

24.为什么我们常见的delegate属性都用是week而不是retain/strong?

25.什么时候用delete,什么时候用Notification?

26.什么是 KVO 和 KVC?

27.KVC的底层实现?

28.KVO的底层实现?

29.ViewController生命周期

30.方法和选择器有何不同?

31.你是否接触过OC中的反射机制?简单聊一下概念和使用

32.调用方法有两种方式:

33.如何对iOS设备进行性能测试?

34.开发项目时你是怎么检查内存泄露?

35.什么是懒加载?

36.类变量的 @public,@protected,@private,@package 声明各有什么含义?

37.什么是谓词?

38.isa指针问题

39.如何访问并修改一个类的私有属性?

40.一个objc对象的isa的指针指向什么?有什么作用?

41.下面的代码输出什么?

42.写一个完整的代理,包括声明、实现

43.isKindOfClass、isMemberOfClass、selector作用分别是什么

44.delegate 和 notification 的区别

45.什么是block?

46.block反向传值

47.block的注意点

48.BAD_ACCESS在什么情况下出现?

49.lldb(gdb)常用的控制台调试命令?

50.你一般是怎么用Instruments的?

51.iOS中常用的数据存储方式有哪些?

52.iOS的沙盒目录结构是怎样的?

53.iOS多线程技术有哪几种方式?

54.GCD 与 NSOperation 的区别

55.写出使用GCD方式从子线程回到主线程的方法代码

56.如何用GCD同步若干个异步调用?(如根据若干个url异步加载多张图片,然后在都下载完成后合成一张整图)

57.dispatch_barrier_async(栅栏函数)的作用是什么?

58.以下代码运行结果如何?

59.什么是 RunLoop

60.什么是 Runtime

61.Runtime实现的机制是什么,怎么用,一般用于干嘛?

62.什么是 Method Swizzle(黑魔法),什么情况下会使用?

63._objc_msgForward 函数是做什么的,直接调用它将会发生什么?

64.什么是 TCP / UDP ?

65.通信底层原理(OSI七层模型)

66.介绍一下XMPP?

67.OC中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?

68.tableView的重用机制?

69.用伪代码写一个线程安全的单例模式

70.如何实现视图的变形?

71.在手势对象基础类UIGestureRecognizer的常用子类手势类型中哪两个手势发生后,响应只会执行一次?

72.字符串常用方法

73.如何高性能的给 UIImageView 加个圆角?

74.你是怎么封装一个view的

75.HTTP协议中 POST 方法和 GET 方法有那些区别?

76.请简单的介绍下APNS发送系统消息的机制

未完待续...
2018.8.27 前往查看答案
iOS 阿里三面 面试题整理 1.dSYM你是如何分析的?

2.多线程有哪几种?你更倾向于哪一种?

3.单例弊端?

4.如何把异步线程转换成同步任务进行单元测试?

5.介绍下App启动的完成过程?

6.比如App启动过慢,你可能想到的因素有哪些?

7.0x8badf00d表示是什么?

8.怎么防止反编译?

9.说说你遇到到的技术难点?

10.说说你了解的第三方原理或底层知识?
2018.1.2 前往查看详情
iOS面试题,面试答这么多就可以了 1.面向对象设计原则

2.iOS应用导航模式有哪些

3.iOS持久化方式有哪些

4.NSClassFromString加载静态库中的类什么情况是nil

5.id和NSObject的区别

6.简单描述一下Runtime

7.Runtime给类添加属性、成员变量

8.KVO原理

9.Property修饰符

10.程序内存分区

11.extern的作用

12.指针函数/函数指针/Block

13.__weak、__strong、__block理解

14.事件传递链/事件响应链

15.简述RunLoop

16.NSTimer原理

17.简述GCD

18.自动释放池

19.iOS中的定时器

20.UIView/UILayer关系

21.简述你了解的锁

22.ISO七层、TCP/IP四层协议

23.什么是ARC

24.iOS类和结构体有什么区别

25.iOS通知和协议的区别

26.iOS内存使用注意事项和优化

27.ViewController完整生命周期

28.frame和bounds区别,origin和anchorPoint的区别

29.@synthesize和@dynamic的作用

30.SDWebImage作用

31.XML解析方式

32.AFNetWorking作用

33.Http协议特点,GET/POST请求区别

34.Socket连接和Http连接区别

35.Tcp三次握手、四次挥手

36.performSelector传三个参数(未解答)

37.main方法前过程

38.线程安全方法

39.NSOperationQueue和GCD区别联系

40.iOS常用设计模式

41.简述Block

42.消息动态处理/转发流程

43.weak变量怎么置为nil

44.对nil发消息会发生什么

45.安全区域的理解

46.UITableView优化方法

47.ssl/tls证书作用

48.MVC、MVP、MVVM

49.属性的默认关键字

50.@property(nonatomic,copy) NSString *name的setter内部实现

51.引用计数原理

52.iOS中的copy、mutableCopy

53.什么情况下不会autosynthesis

54.如何手动触发一个value的KVO

55.KVC的keyPath中的集合运算符如何使用

56.KVC和KVO的keyPath一定是属性么

57.lldb(gdb)常用的调试命令

58.如何调试BAD_ACCESS错误
2018.4.11 前往查看详情
腾讯社招iOS面试记录 1.对mrc和arc的理解

2.谈谈对自动释放池的理解

3.自动释放池在mrc和arc区别

4.多层自动释放池嵌套的对象在哪一层释放

5.对于block,理解,mrc和arc下有什么区别,使用注意事项

6.对于深拷贝和浅拷贝的理解

7.对于strong weak,atomic等等理解

8.weak原理

9.如果属性完全不加修饰词入weak,atomic,系统会怎么处理

10.简述下block的实现

11.描述下IM系统如何保证消息不丢

12.IM数据库如何设计表

13.C++引用和指针有什么区别

14.Http协议30x的错误是什么

15.谈谈你懂runloop得理解:由浅入深

16.谈谈对多线程理解:由浅入深

17.谈谈category和extension区别,系统如何底层实现category

18.谈谈消息转发机制实现

19.谈谈事件响应链,如何响应view之外的事件

20.界面性能优化
2018.05.05 前往查看详情
我的iOS面试之旅 1.内存管理方面(ARC、MRC、autorelease、autoreleasepool)

2.Runtime方面(消息发送,NSHipster 对象关联,NSHipster 方法交换等等)

3.KVO内部实现原理(多家公司有问到)

4.Runloop方面(深入理解RunLoop)

5.HTTPS通信过程

6.UITableView的优化手段方法(iOS 保持界面流畅的技巧)

7.多线程方面(GCD、NSOperation居多)(关于iOS多线程,你看我就够了)

8.SDWebImage源码分析

9.事件传递以及响应链(史上最详细的iOS之事件的传递和响应机制)

10.图片的解压缩
2018.05.05 前往查看详情
iOS常见基础面试题(附参考答案) 1.为什么说OC是一门动态的语言?

2.讲一下MVC和MVVM,MVP?

3.为什么代理要用weak?代理的delegate和dataSource有什么区别?block和代理的区别?

4.属性的实质是什么?包括哪几个部分?属性默认的关键字都有哪些?@dynamic关键字和@synthesize关键字是用来做什么的?

5.属性的默认关键字是什么?

6.NSString为什么要用copy关键字,如果用strong会有什么问题?(注意:这里没有说用strong就一定不行。使用copy和strong是看情况而定的)

7.如何令自己所写的对象具有拷贝功能?

8.可变集合类 和 不可变集合类的 copy 和 mutablecopy有什么区别?如果是集合是内容复制的话,集合里面的元素也是内容复制么?

9.为什么IBOutlet修饰的UIView也适用weak关键字?

10.nonatomic和atomic的区别?atomic是绝对的线程安全么?为什么?如果不是,那应该如何实现?

11.UICollectionView自定义layout如何实现?

12.用StoryBoard开发界面有什么弊端?如何避免?

13.进程和线程的区别?同步异步的区别?并行和并发的区别?

14.线程间通信?

15.GCD的一些常用的函数?(group,barrier,信号量,线程同步)

16.如何使用队列来避免资源抢夺?

17.数据持久化的几个方案(fmdb用没用过)

18.说一下AppDelegate的几个方法?从后台到前台调用了哪些方法?第一次启动调用了哪些方法?从前台到后台调用了哪些方法?

19.NSCache优于NSDictionary的几点?

20.知不知道Designated Initializer(指定初始化)?使用它的时候有什么需要注意的问题?

21.实现description方法能取到什么效果?

22.objc使用什么机制管理对象内存?
2018.03.01 前往查看详情
iOS面试旗开得胜之答案篇 1.属性readwrite,readonly,assign,retain,copy,nonatomic 各自什么作用,他们在那种情况下用?

2.Objective-C如何对内存管理的,说说你的看法以及你遇到的问题以及解决方法?

3.内存管理的几条原则时什么?按照默认法则.哪些关键字生成的对象需要手动释放?在和property结合的时候如何有效的避免内存泄露?

4.MVC设计模式是什么? 你还熟悉什么设计模式?他们和MVC有什么不同的地方?

5.浅复制和深复制的区别?

6.什么是KVO和KVC?他们的使用场景是什么?

7.通知和协议有哪些不同之处?

8.在iOS应用有哪些方式保存本地数据?他们都应用在哪些场景?
2017.12.21 前往查看详情
三年iOS面试之大厂寻梦记 1.修饰符, 可变不可变对象等基础

2.Runtime

3.RunLoop

4.KVC、KVO原理

5.block本质

6.category本质

7.内存管理

8.事件传递

9.App、VC、View、CALayer生命周期

10.多线程(队列、锁)

11.性能优化(体验优化、启动优化、网络优化、编译优化)

12.主流组件化、模块化、架构方案

13.Core Animation、屏幕渲染等

14.数据持久化方案

15.动态化方案(Hybird/RN/Weex/Flutter)
2018.11.19 前往查看详情
iOS底层面试题---OC语法部分 1.一个NSObject对象占用多少内存?

2.对象的isa指针指向哪里?

3.OC的类信息存放在哪里?

4.iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?)

5.如何手动触发KVO?

6.直接修改成员变量或属性会触发KVO么?

7.KVC的赋值和取值过程是怎样的?原理是什么?

8.Category的实现原理?

9.Category和Class Extension的区别是什么?

10.Category中有load方法吗?load方法是什么时候调用的?load 方法能继承吗?

11.+load、+initialize方法的区别什么?它们在category中的调用的顺序?以及出现继承时他们之间的调用过程?

12.Category能否添加成员变量?如果可以,如何给Category添加成员变量?

13.block的原理是怎样的?本质是什么?

14.__block的作用是什么?

15.block的属性修饰词为什么是copy?使用block有哪些使用注意?

16.block在修改NSMutableArray,需不需要添加__block?

17.说说isa指针?

18.isa、superclass总结
2018.11.19 前往查看详情
iOS开发面试题整理 1.分类和扩展有什么区别?可以分别用来做什么?分类有哪些局限性?分类的结构体里面有哪些成员?

2.讲一下atomic的实现机制;为什么不能保证绝对的线程安全(最好可以结合场景来说)?

3.被weak修饰的对象在被释放的时候会发生什么?是如何实现的?知道sideTable么?里面的结构可以画出来么?

4.关联对象有什么应用,系统如何管理关联对象?其被释放的时候需要手动将其指针置空么?

5.KVO的底层实现?如何取消系统默认的KVO并手动触发(给KVO的触发设定条件:改变的值符合某个条件时再触发KVO)?

6.Autoreleasepool所使用的数据结构是什么?AutoreleasePoolPage结构体了解么?

7.讲一下对象,类对象,元类,跟元类结构体的组成以及他们是如何相关联的?为什么对象方法没有保存的对象结构体里,而是保存在类对象的结构体里?

8.class_ro_t 和 class_rw_t 的区别?

9.iOS 中内省的几个方法?class方法和objc_getClass方法有什么区别?

10.在运行时创建类的方法objc_allocateClassPair的方法名尾部为什么是pair(成对的意思)?

11. 一个int变量被__block修饰与否的区别?

12.RunLoop的作用是什么?它的内部工作机制了解么?(最好结合线程和内存管理来说)

13.哪些场景可以触发离屏渲染?(知道多少说多少)

等等...
2018.10.08 前往查看详情
IOS 面试题目列表 1.说一下OC的反射机制

2.block的实质是什么?有几种block?分别是怎样产生的?

3.__block修饰的变量为什么能在block里面能改变其值?

4.说一下线程之间的通信。

5.你们应用的崩溃率是多少?

6.说一下hash算法。

7.NSDictionary的实现原理是什么?

8.你们的App是如何处理本地数据安全的(比如用户名的密码)?

9.遇到过BAD_ACCESS的错误吗?你是怎样调试的?

10.什么是指针常量和常量指针?

11. 不借用第三个变量,如何交换两个变量的值?要求手动写出交换过程。

12.若你去设计一个通知中心,你会怎样设计?

13.如何去设计一个方案去应对后端频繁更改的字段接口?

14.KVO、KVC的实现原理

15.用递归算法求1到n的和

16.category为什么不能添加属性?

17.说一下runloop和线程的关系。

18.说一下autoreleasePool的实现原理。

19.说一下简单工厂模式,工厂模式以及抽象工厂模式?

20.如何设计一个网络请求库?

21.说一下多线程,你平常是怎么用的?

22.说一下UITableViewCell的卡顿你是怎么优化的?

23.看过哪些三方库?说一下实现原理以及好在哪里?

24.说一下HTTP协议以及经常使用的code码的含义。

25.设计一套缓存策略。

26.设计一个检测主线和卡顿的方案。

27.说一下runtime,工作是如何使用的?看过runtime源码吗?

28.说几个你在工作中使用到的线程安全的例子。

29.用过哪些锁?哪些锁的性能比较高?

30.说一下HTTP和HTTPs的请求过程?

31.说一下TCP和UDP

32.说一下静态库和动态库之间的区别

33.load和initialize方法分别在什么时候调用的?

34.NSNotificationCenter是在哪个线程发送的通知?

35.用过swift吗?如果没有,平常有学习吗?

36.说一下你对架构的理解?

37.为什么一定要在主线程里面更新UI?
2018.05.05 前往查看详情
2018最新iOS面试题整理(含答案和框架梳理) 1.Runtime相关

2.RunLoop

3.webview的交互

4.AutoLayout 、动画UI

5.外设连接

6. iPhoneX等机型适配

7.卡顿监测

8. 签名机制

9.推送机制

10. 组件化技术

11.swift特性及 swift与OC混合编程

12.AFNetWorking的原理与使用

13.SDWebImage的原理与使用

14.FMDB的原理与使用

15.RAC的原理与使用

16.MJExtension的原理与使用

17.热修复JSPatch的原理与使用


18.链表

19.栈

20.队列

21.二叉树

22.红黑树

23.http

24.https

25.httpdns

26.直播协议

27.websocket

28. iOS如何抓包

29.C与C++基础

30. MVC和MVVM
2018.09.26 前往查看详情
IOS面试(2018) 1.非技术面试题

2.C面试题1

3.C面试题2

4.C面试题3

5.iOS笔试题01

6.iOS笔试题02

7.iOS笔试题03

8.iOS笔试题04

9.iOS面试题01-多线程网络

10.iOS面试题02-内存管理

11.iOS面试题03-Foundation

12.iOS面试题04-数据存储

13.iOS面试题05-UI 控件

14.iOS面试题06-应用程序

15.iOS面试题07-第三方框架

16.iOS面试题08-其他

17.iOS面试题09- 基础篇

18.iOS面试题10-UI 篇

19.iOS面试题11-原理篇

20.iOS面试题12-数据结构算法篇

21.iOS面试题13-其他

22.道长的 Swift 面试题

23.卓同学的 Swift 面试题

24.4道过滤菜鸟的iOS面试题

25.知乎热门iOS 中级面试题

26.2018 iOS 面试题大全

27.2018知乎iOS面试指南
2018.05.05 前往查看详情
iOS面试题 1.项目中如何进行调试和测试

2. 多线程:多线程种类有哪些?想要一个界面延缓显示,用NSOpration应该怎么做?

3. 数据持久化:都用哪些方法,用到SQLite了么,项目中用到了哪些?

4. 看过和引用过哪些优秀的第三方库,自己是如何进行封装小部件

5.堆栈队列的区别

6.http和https的区别

7.runloop:是什么,在项目中做了哪些,几个model,分别是什么,Timer的问题原因,解决方案?

8.数组和链表的区别

9.iOS工作模式有?说一下KVO,NSNotification和KVO区别

10.c++引用和指针区别
2018.09.29 前往查看详情
# Swift学习 # 简单面试题 1.什么是函数式编程?

2.swift相对于OC有哪些优点?

3.什么是泛型,swift在哪些地方使用了泛型?

4.defer、guard的作用?

5.swift语法糖 ?!的本质(实现原理)

6.举例swift中模式匹配的作用?

7.swift中closure与OC中block的区别?

8.什么是capture list,举例说明用处?

9.swift中private与fileprivate的区别?

10.Set 独有的方法有哪些?

11.实现一个 min 函数,返回两个元素较小的元素

12.map、filter、reduce 的作用

13.map 与 flatmap 的区别

14.什么是 copy on write

15.如何获取当前代码的函数名和行号

16.如何声明一个只能被类 conform 的 protocol

17.String 与 NSString 的关系与区别

18.

19.

20.如何截取 String 的某段字符串

21.throws 和 rethrows 的用法与作用

22.try? 和 try!是什么意思

23.associatedtype 的作用

24.public 和 open 的区别

25.声明一个只有一个参数没有返回值闭包的别名

26.Self 的使用场景

27.dynamic 的作用

28.什么时候使用 @objc

29.Optional(可选型) 是用什么实现的

30.如何自定义下标获取

未完待续...
2018.05.05 前往查看详情