大厂面试题

iOS开发面试BAT等公司的一点记录

2020-07-08  本文已影响0人  iOS猿_员

算法

LeetCode easymedium类型的题目刷一遍,一般面试的题目不出意外基本在里面。Leetcode官方也有类似的一些专题比如练习模式
有精力的可以看一遍《剑指offer》这本电子书。结合Leetcode,理解其思维逻辑,不容易忘记,这一关问题就不大了

基础

iOS基础

  1. RunLoop。 建议RunLoop源码通读一遍,这块内容经常被考查。结合该篇文章 深入理解RunLoop 肯定会加深你的理解.
  2. 内存。 MRC和ARC的区别。内存管理原理是什么。几个关键字的实现和不同点比如 strong,weak,assign,retain,copy,unsafe_unretained。因为涉及到内存,所以会引申到堆栈这一块.
  3. BlockBlock的实质,在MRCARC中的差别,Copy关键字,和函数指针的联系。__block关键字
  4. Runtime相关。 消息转发几个步骤,消息怎么发送?
  5. 多线程.GCDOperation。一般会给你一个场景,问你怎么处理。还有就是线程安全这一块
  6. 锁。这块经常和多线程一起进行考察
  7. KVO原理
  8. 属性,协议,分类,扩展
  9. Delegate, Block, Notification

网络

  1. http1.1http2https协议。https怎么验证的。三次握手四次挥手。
  2. SocketWebsocket区别,TCP联系
  3. http缓存
  4. 40450020030x状态码(优先级比较低)
  5. 网络性能优化相关。比如dns解析,probuf

...

数据库

  1. 一般的sql语句,增删改查
  2. 主键外键索引

升华篇

该篇主要针对的是iOS或者前端的

  1. 包体积优化步骤
  2. 启动时长优化(结合dyld源码还有一些清晰认知)
  3. 卡顿检测

...

项目

简历中的一些项目进行盘点。这块你必须拿下,如果自己项目都模棱两可,基本也就结束了。

喜欢问的一些面试题

  1. arcmrc的相同点和不同点, 他们都是怎么进行内存管理的
  2. 内存管理一些关键字的考察strong,weak
  3. 简单说下runloop,和线程的关系是什么。线程没有runloop可以吗?
  4. 什么时候会发生野指针?怎么避免野指针?
  5. 进程线程的关系,线程和队列的关系,gcdoperationthread的关系。
  6. 接着5多线程,多线程编程,死锁,会拿出一些实际的例子让你多线程编程,有可能手写。有些可能需要用到一些锁配合
  7. 接着6,提到多线程,也用到了锁,就会问题一些常用的锁。nslock,信号量,自旋锁,递归锁等。然后会问一些线程安全相关的题目,为什么会不安全?经常拿字符串举例
  8. block中怎么传值,引用循环时怎么处理。哪些情况会引用循环。block实质。blockarcmrc的区别等
  9. 事件响应链
  10. 属性
  11. method swizzling 机制
  12. 消息转发
  13. 描述tcp三次握手
  14. autoreleasepool对象的声明周期
  15. 怎么监测到一个对象被释放了
  16. appdelegate声明周期
  17. category
  18. +load,+initialize
  19. 常用的设计模式
  20. 介绍以往项目
  21. 你觉得在这家公司中觉得最有挑战性的一件事情?
  22. nsdictionary本质是什么
  23. nsarrynsset的区别
  24. 对于rnweexflutter 有接触过吗?
  25. 算法考核

...

后记

iOS开发整个大环境趋于饱和,所以就业形势不太乐观,导致要求往后只会越来越高。但是在高级资深这一块还是有一定份额的。目前高端还是比较吃香点。

再说说面试,一时没得到自己期望公司的offer也没关系,继续找吧。面试有个好处就是在面试过程中你会发现你的补漏点,面试也是一次练兵的机会,中间你会知道自己的能力和薪资水平。

上一篇下一篇

猜你喜欢

热点阅读