读书计划

目标要点:算法,操作系统,iOS基础,网络,数据结构。
书籍:《剑指offer》 《程序员的自我修养》《图解HTTP》 《图解TCP/IP》 《OC高级编程》 《Effective OC 2.0》 《OC设计模式》
iOS要点:runloop,runtime,autorelease,block,KVO,GCD,事件传递链,渲染,动画,网络安全,git问题。
文章:

runloop
iOS中的多线程技术
组件化
事件传递
sunny面试题
peak面试题
启动优化
性能检测
git知识
bestwisher文章
检测内存泄露
KVO与KVC原理KVO、Notification、Delegate优缺点最推荐的官方文档
GCD 与 NSOperation
Runtime
block
atomic 线程安全@synchronized
对象的深浅复制
招聘一个靠谱的iOS
消息传递机制
深入理解Objective-C:Category
RunLoop
Cell 图片异步加载优化
iOS 函数式编程的实现 && 响应式编程概念
内存恶鬼drawRect
UIKit 性能调优(主要是UITableView)
优化UITableViewCell高度计算的那些事
高性能图片架构与设计
轻量化视图控制器
UIView的生命周期
高效设置圆角
事件的传递和响应机制
ReactiveCocoa 和 MVVM 入门

常见知识点:
iOS:

你在项目中用过 runtime 吗?举个例子。
你在项目中用过 GCD 吗?举个例子。
Category 的实现原理,以及 Category 为什么只能加方法不能加属性。
block 的原理,block 的属性修饰词为什么用 copy,使用 block 时有哪些要注意的?
iOS 的热更新方案有哪些?介绍一下实现原理。
class A 继承 class B,class B 继承 NSObject。画出完整的类图。
细致地讲一下事件传递流程
main()之前的过程有哪些?
Category 中有 load 方法吗?load 方法是什么时候调用的?load 方法能继承吗?
讲一下你对 iOS 内存管理的理解
你在项目中是怎么优化内存的?
讲讲 RunLoop,项目中有用到吗?
列表卡顿的原因可能有哪些?你平时是怎么优化的?
项目有没有做过组件化?或者你是否调研过?
讲一下 OC 的消息机制
ARC 都帮我们做了什么?
实现 isEqual 和 hash 方法时要注意什么?
property 的常用修饰词有哪些?weak 和 assign 的区别?weak 的实现原理是什么?
线程安全的处理手段有哪些?把你想到的都说一下。
说一下 OperationQueue 和 GCD 的区别,以及各自的优势
Swift 中 struct 和 class 的区别
Swift 是如何实现多态的?
Swift 和 OC,各自的优缺点有哪些?
如果让你实现 NSNotificationCenter,讲一下思路
如果让你实现 GCD 的线程池,讲一下思路
讲讲 MVC、MVVM、MVP,以及你在项目里具体是怎么写的?
iOS 系统框架里使用了哪些设计模式?至少说6个。
你自己用过哪些设计模式?
哪一个项目技术点最能体现自己的技术实力?具体讲一下。
你在项目中遇到的最大的问题是什么?你是怎么解决的?
用 Alamofire 比直接使用 URLSession,优势是什么?
你是如何学习 iOS 的?
和产品经理、测试产生冲突时,你是怎么解决的?
说说你对 OC 中 load 方法和 initialize 方法的异同。——主要说一下执行时间,各自用途,没实现子类的方法会不会调用父类的?

说说你对 block 的理解。—— 三种 block,栈上的自动复制到堆上,block 的属性修饰符是 copy,循环引用的原理和解决方案。

说说你对 runtime 的理解。——主要是方法调用时如何查找缓存,如何找到方法,找不到方法时怎么转发,对象的内存布局。

说说你对 MVC 和 MVVM 的理解。—— MVC 的 C 太臃肿,可以和 V 合并,变成 MVVM 中的 V,而 VM 用来将 M 转化成 V 能用的数据。

说说 UITableView 的调优。——一方面是通过 instruments 检查影响性能的地方,另一方面是估算高度并在 runloop 空闲时缓存。

谈谈你对 ARC 的理解。ARC 是编译器完成的,依靠引用计数,谈谈几个属性修饰符的内存管理策略,什么情况下会内存泄露。

MVC 具有什么样的优势,各个模块之间怎么通信,比如点击 Button 后 怎么通知 Model?

UITableView 的相关优化
KVO、Notification、delegate 各自的优缺点,效率还有使用场景
如何手动通知 KVO
Objective-C 中的 copy 方法
runtime 中,SEL 和 IMP 的区别
autoreleasepool 的使用场景和原理
RunLoop 的实现原理和数据结构,什么时候会用到
block 为什么会有循环引用
使用 GCD 如何实现这个需求:A、B、C 三个任务并发,完成后执行任务 D。
NSOperation 和 GCD 的区别
CoreData 的使用,如何处理多线程问题
如何设计图片缓存?
有没有自己设计过网络控件?
怎么判断某个 cell 是否显示在屏幕上
进程和线程的区别
UIView 生命周期
如果页面 A 跳转到 页面 B,A 的 viewDidDisappear 方法和 B 的 viewDidAppear 方法哪个先调用?
block 循环引用问题
ARC 的本质
RunLoop 的基本概念,它是怎么休眠的?
Autoreleasepool 什么时候释放,在什么场景下使用?

网络:

为什么是三次握手?为什么是四次挥手?三次挥手不行吗?
讲一下 HTTPS 密钥传输流程
TCP 与 UDP 区别
TCP 流量控制
简介 TCP 和 UDP 区别,他们位于哪一层?
路由器和交换机的工作原理大概是什么,他们分别用到什么协议,位于哪一层?
描述TCP 协议三次握手,四次释放的过程。
TCP 协议是如何进行流量控制,拥塞控制的?
为什么建立连接时是三次握手,两次行不行?如果第三次握手失败了怎么处理
关闭连接时,第四次握手失败怎么处理?
你怎么理解分层和协议?
HTTP 请求中的 GET 和 POST 的区别,Session 和 Cookie 的区别。
谈谈你对 HTTP 1.1,2.0 和 HTTPS 的理解。

算法:

手写一下快排
遍历一个树,要求不能用递归
找出两个字符串的最大公共子字符串
不用临时变量怎么实现 swap(a, b)——用加法或者异或都可以
二维有序数组查找数字——剑指 offer 第 3题
亿级日志中,查找登陆次数最多的十个用户——(不确定对不对,我的思路是)先用哈希表保存登陆次数和ID,然后用红黑树保存最大的十个数。剑指 offer 第 30题
简述排序算法——快排,partion 函数的原理,堆排(不稳定),归并排序,基数排序。
把 "www.zhidao.baidu.com" 这样的字符串改成 "com/baidu/zhidao/www"。——老题目了,剑指 offer 的,两次逆序排列即可。
求数组中和为某个值的所有子数组,比如数组是 [5,5,10,2,3] 一共有四个子数组的和是 15,比如 [5,10],[5,10],[10,2,3],[5,5,2,3]。这个就是简单的递归了,分两种情况,当前位置的数字在子数组中,以及不在子数组中。
数组和链表的区别
如何找到字符串中第一个不重复的字符
哈希表如何处理冲突
两个无限长度链表(也就是可能有环) 判断有没有交点

操作与编译:

源代码是怎么变成可执行文件的,每一步的作用是什么?(预编译,词法分析,语法分析,语义分析,中间语言生成目标代码生成,汇编,链接)
应用层、API、运行库、系统调用、操作系统内核之间的关系是什么?
虚拟内存空间是什么,为什么要有虚拟内存空间。
静态链接和动态链接分别表示什么,大概是怎么实现的?
可执行文件的结构如何?(分为哪些段)
它是怎么装载进内存的,为什么要分段,分页,页错误是什么?
进程的内存格局是怎样的?(堆、栈、全局/静态区,代码区,常量区)
堆和栈的区别,函数调用和栈的关系
进程和线程的区别
异步和同步,串行,并发,并行的区别
多并发任务,仅多线程能加快速度么(不能,会变慢,有线程切换的开销)
多个线程之间可以共享那些数据
进程之间如何通信
介绍几种锁,他们的用途和区别

以上的内容摘自微信公众号小专栏中几位大神的精心整理,更多内容也欢迎大家去订阅
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,084评论 1 32
  • 1.设计模式是什么? 你知道哪些设计模式,并简要叙述?设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型...
    龍飝阅读 2,133评论 0 12
  • 1.内存管理 2.单例的理解 3.post和get的区别 4.md5和base64是什么,有什么区别 5.简单谈谈...
    coder_Wg阅读 1,283评论 1 6
  • 今天回听了以往听过的一个课程,觉得挺不错的,想大概梳理下听到的一些信息。 首先,分享者的第一个观点真...
    沐子细语阅读 167评论 0 1
  • 看完电影《我不是药神》隐约听到有人哭泣,心里还是有点感触。忽然让我想起刚毕业那一年,工作的时候不小心受伤住院。因为...
    天水清波阅读 133评论 0 0