面试准备阶段

1、设计模式:+1
2、Http :+1
3、WebView :+1
4、优化:启动优化,界面优化 :+1
5、架构:+2
6、RN+Flutter(stateLess,state区别) + H5优劣势
7、其他: 锁,埋点项目研究下 , +1

知识点:
1、NSProxy:
2、NSHashTable :https://www.jianshu.com/p/079eeeff81f7
3、BitCode :https://www.jianshu.com/p/8ccda9db25b8
4、Promise: 延迟或者异步执行(同js,JQuery)
5、NSCache 和 NSDictionary 的区别,NSCache的优势
6、JSON 和 XML 的优势
7、如何查找崩溃栈,起始位移 + 偏移量
8、 代码设计原则:SOLID原则
9、 内存和显存区别
10、class_rw_t 和 class_ro_t 的区别 https://blog.csdn.net/wxs0124/article/details/104429484

11、C++语法、

微博:
1、深拷贝,浅拷贝,
2、NSMutableArray alloc 和 arrayWithCapacity 区别,20的大小,内部实际申请多少,然后不够用的时候又申请多少。
3、什么是平衡二叉树
4、动态规划
5、消息转发 应用场景
6、TCP 和 UDP,三次握手
7、HTTPS
8、异步绘制的原理 (重点)

小米:
1、extern 的作用,define
2、static 全局的和局部的区别
3、block 为什么不会给__weak的对象引用计数+1
https://www.jianshu.com/p/fe772a3536ca
weak 修饰的对象-isa-weak_refrecerefs,block就会把你的结构体copy 到block中
block有两个函数,一个是obj_assgin 函数主要做引用计数+1,obj_dispose 主要做
引用计数-1,然后obj_assgin 拿到这个对象,会检查当前的结构体,如果结构体指针
检测到是被__weak修饰过则引用计数不加1,如果是被强引用则引用计数+1。

4、RunLoop 的几种模式 可不可以组合

米克世界:
1、runloop 添加timer时间是执行一次创建下一次的执行时间
2、JSCore 交互原理
3、Hybrid原理
4、WKWebView 和 UIWebView的区别 优缺点

映客直播
1、动态库和静态库存储在什么地方,(静态库在mach.o里,动态库在bundle里边) (重点)
2、NSTimer 如何优化,
3、Tcp 4次挥手为什么4次挥手,他的每次final时间
4、崩溃查找,完全讲解一下 (重点)
5、方法交换这块可不可以同时交换多个 (重点)

二面:

北京音娱时光科技有限公司
1、锚点,frame, bounds
https://www.jianshu.com/p/eb2736dab0d7

2、ScrollView的实现原理:改bounds

3、drawRect 的时机 (强化记忆一下)

4、autolayout
https://www.jianshu.com/p/ae70910ce61f

5、UIViewController的生命周期

6、消息事件传递

7、NSTimer基本单位比较大 CADisplayLink 每秒刷新60次 GCD 纳米级 定时区别

8、动画过程中UIView 是否变了:frame直接改变了,只不过是layer在做动画。

9、int 变量,系统如何释放的,auto 局部变量:出了作用域自动释放在栈区执行出栈操作。

搜狗
1、autolayout

2、MJ 思想(hook scrollView)

3、离屏渲染原理,及解决方案

转转
1、内存管理,内存溢出,内存泄漏

2、组件化(可以单独进行测试),插件化(apk,ipa),模块化(相互依赖的模块)

3、HTTP 如何做实现https的形式

二面:
1、如何检测无用文件 (重点)

2、APNS 原理

3、启动优化
1. main 之前:删除无用类,无用方法,组件化二进制

4、framework 静态包二进制打包, 二进制打包原理
https://www.cnblogs.com/junhuawang/p/7598236.html

5、LRU 原则还有什么其他原则

6、JSPatch

百度:
1、25匹马 5条跑道如何尽快找出最快的那一匹
2、对一个数列进行排序,然后拼接成一个最小的一个数字

平安:
1、自己设计一套自动释放池 (重点)

2、1G大小的图片的优化 :分片处理 CATiledLayer 处理 (重点)
1.异步加载
2.分片处理
3.CATileLayer
https://www.jianshu.com/p/2d9e58d67d87

3、merge 和 rebase 的区别
NSCahe 设计缓存

小米:

1、对象如何检测到有weak 指针指向
https://www.jianshu.com/p/cc3e340edfff9

2、aotumic 为什么枷锁也不安全
https://www.jianshu.com/p/e286d2907bf7
https://blog.csdn.net/weixin_30734435/article/details/96600913

3、苹果的看门狗 (启动20,恢复10,悬挂10,退出6,后台运行10分钟)

4、扩展类如何加到原类的方法列表:(Person run , Person-A run), add方法
https://www.jianshu.com/p/dd57c39a5e4c

5、信号(signal)崩溃源有几种, 崩溃栈在哪里取 (崩溃栈查找不到的如何处理)
http://www.cocoachina.com/articles/25704

    5.1   信号中断(SGIABRT)、非法指令信号(SIGILL)、总线错误信号(SIGBUS)、段错误信号(SIGSEGV)、访问一个已经释放的对象(EXC_BAD_ACCESS)

6、main函数之前:什么是动态内存(malloc)

7、对象的结构体指针里边是否包含weak指针 : isa - > weak_refresferId

8、cacheList申请多大内存 502

9、 崩溃栈信息具体描述,(dsym 转义)
http://www.cocoachina.com/articles/25704

10、Controller视图加载时间监控
利用runtime机制重写loadView 及 viewDidApper 统计时间

11、组件的二进制化:
组件二进制化: https://www.jianshu.com/p/a6d0f37cdc27

12、cocoapod 源码分析 (ruby)

13、abort() 和 exit(0):
https://www.jianshu.com/p/df80dd2b3eff

算法
14:无序数组两数之和相加
15:对于无数数组找出比当前坐标下的值第一个大的值

小米 3
1、bitcode原理 (中间代码)
https://www.jianshu.com/p/8ccda9db25b8
说说缺点:使用bitcode的时候会增加APP的体积,而且增加的不是一点点。
说说优点:不使用bitcode的话,每次更新app,资源会全下载;而用的话,更新app,只会更新一部分资源。

2、组件化设计,功能划分,通信,版本控制,编译速度优化,二进制化,怎么设计,怎么做
3、设计一个扫描无用代码类的工具

微博2:
1、线程和队列的关系
2、路由的优化
3、http 缓存的优化
4、RN 与 H5的生命周期

美术宝:
1、两个int 交换:中间,异或、相加相见的方式
2、image 优化

美团
1、KVO 仔细研究,为什么要叫伪子类,为什么重写dealloc
https://www.jianshu.com/p/0aa83ac521ba

2、+load +initlaize 在父类,子类,扩展类的执行顺序,以及+load initlaize为何不会被覆盖。
https://www.jianshu.com/p/bc77798fd8e6
Person-- PersonA , PersonB,PersonC 扩展类 交换run:

HR 沟通禁忌
https://www.zhihu.com/question/23751641

58
1、有没有做防护机制,线上崩溃修复
https://www.jianshu.com/p/f63395599633

2、崩溃日志:
数组越界,野指针,内存泄漏,observer,通知,abort,watchdog,找不到方法,
线程死锁,地址错位,
Corefoundation
https://www.jianshu.com/p/99fa604a0e5d
https://blog.csdn.net/shihuboke/article/details/75452655

完美世界:
1、 Ruby脚本

  2、组件化的理解
  
  3、有没有做过什么工具之类的(图片管理,静态分析,二进制化(提高编译速度),shell 脚本打包,优化(页面时间统计,CPU监控,内存监控,fps监控),)

  4、jekiens 持续集成

58 同城
1、启动优化,动态库和静态库的区别,自定义的静态库不可以共享
https://zhuanlan.zhihu.com/p/39271268
动态库是一个没有main函数的程序,
自定义的动态库是被阉割的动态库,不会被其他程序共用,动态库本身最大的特点是被共享。

 2、自动释放池 如何释放一个for循环的 (TLS)
        autoreleasePool 是一个局部的结构体,每次进入for 循环都会生成一个新的自动释放池

3、Jscore的原理

4、RN的bundle注入 

5、Runtime 如何做到多个方法交换的
        https://www.cnblogs.com/jgCho/p/11219936.html

6、搜索无用代码原理
        https://www.jianshu.com/p/b1a851de2409
        静态:全局搜索头文件,有没有alloc ,new
        动态: 6.1 Mach-o文件中 __DATA __objc_classrefs段记录了引用类的地址,__DATA __objc_classlist段记录了所有类的地址,取差集可以得到未使用的类的地址,然后进行符号化,就可以得到未被引用的类信息。
 
  7、支付宝支付流程
           算法:【1,3,23,8,9,11,4】 奇偶分类

疑问:
1、自旋锁和互斥锁的区别
https://www.jianshu.com/p/d69495dac8cb
https://bestswifter.com/ios-lock/

2、自己实现一个简单的内存泄漏检测工具
8.1 https://www.jianshu.com/p/c479d5675bb3

3、如何设计一个scrollView

4、iOS 性能监控
https://www.jianshu.com/p/bc940ac493aa (有点模糊还要再看)
卡顿,页面启动时间(loadView 时间开始,viewDidAppear:结束时间 hook ViewContoller 的两个函数)

5、数据库优化
https://www.jianshu.com/p/665ae5ed36ec
5.1 合并事务,显性事务,多线程操作

优化点:
1、检测代码 OSLint 代码检测。
2、缩小包体积:资源、废弃类、废弃方法。AppCode,MachView,LinkMap.
3、策略:二进制文件缩小,去掉一些不必须的指令集:x86,打包的时候去掉x86。
4、提高编译速度:缩短编译时间,编译的各个时间启动时间。
5、收集崩溃率,减小崩溃。
6、单元测试
7、灰度发布:Textflight, jekeins 可持续化集成。
8、通用的组件。

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

推荐阅读更多精彩内容

  • 因为呆了2年的公司资金链出了问题,导致我3月8号离职,去旅游,去处理家里的事情花费了2个月的时间,现在5月份才开始...
    萧城x阅读 474评论 0 2
  • {"keys":[{"key2":"余华","key":"活着","url":"https://www.jians...
    书籍数据记录阅读 525评论 0 0
  • “比你厉害的人都那么的努力,你还有什么资格不努力呢?”以前听到这句话,觉得很是鸡汤,听听就算了,可是现在有时无意间...
    似水年华平阅读 137评论 0 2
  • 自我介绍的3个层次: (1)安全 在自我介绍的时候,稍微说一点点自我暴露,比如我这个人不太会说话,会给别人一种你很...
    耿小冬阅读 1,041评论 0 0
  • 见 《柳絮因风》作者:刘义庆 原文:谢太傅寒雪日内集,与儿女讲论文义。俄而雪骤,公欣然曰:“白雪纷纷何所似?”兄子...
    樊晓玲007阅读 758评论 0 6