总结

作者: ruiying | 来源:发表于2019-10-12 16:06 被阅读0次

    重点:

    UI视图,OC语言,Runtime,内存,Block,多线程,Runloop,网络,设计模式,架构/框架,算法,第三方

    1.系统的UI事件传递机制是怎样的?
    2.KVC,KVO的实现原理是怎样的?
    3.简单说说消息传递机制和消息转发流程
    4.当一个obj废弃的时候,指向它的weak指针为何会自动置为nil 实现原理?
    5.Block的实质是怎样的?使用Block为何会产生循环引用?如何避免循环引用?
    6.简单说说怎样利用GCD实现高效的多读单写逻辑?
    7.Runloop是什么?作用是什么?内部工作机制?Runloop为何能做到有事做事,没事休息?
    8.Runtime是什么?什么是 isa,isa 的作用是什么?一个实例对象的isa 指向什么?类对象指向什么?元类isa 指向什么?objc 中类方法和实例方法有什么本质区别和联系?
    8.怎样解决DNS劫持?
    9.分别说说什么是桥接模式,责任链模式?
    10.怎样设计一个图片缓存框架?
    11.请编写查找一个字符串中,第一个只出现一次的字符的算法?
    12.AFNetWorking大致是怎样实现的?SDWebImage实现原理是什么? 它是如何解决tableView的复用时出现图片错乱问题的呢?

    描述下SDWebImage里面给UIImageView加载图片的逻辑
    ?YYModel?

    13.浅谈iOS开发中方法延迟执行的几种方式
    14.请简单的介绍下APNS发送系统消息的机制
    15.HTTP有哪些部分?HTTP的协议特点?Http2.0如1.x的区别(百度一面)?HTTP建立流程(三次握手,四次挥手),HTTP的缺陷,socket 连接和 Http 连接的区别,get和post的区别(美团一面)
    16.HTTPS相关(区别,加密流程,加密手段)
    17.传输层协议TCP和UDP的区别
    18 如何实现 dispatch_once,为什么可以保证只运行一次?
    19 iOS读写锁的几种方法iOS开发中的11种锁以及性能对比

    20 算法

    (1).时间复杂度 (2)空间复杂度 (3)常用的排序算法(1、冒泡排序 2、选择排序3、插入排序4、希尔排序5、快速排序6、归并排序7、堆排序)* 常见的7种排序算法
    (2)字符串反转
    (3)链表反转
    (4)有序数组合并
    (5)查找第一个只出现一次的字符(Hash查找)
    (6)查找两个子视图的共同父视图
    (7)无序数组中的中位数(快排思想)

    21 设计模式是为了解决什么问题的?看过哪些第三方框架的源码,它们是怎么设计的?几个重构的技巧么?你觉得重构适合什么时候来做?开发中常用架构设计模式你怎么选型?如何组件化解耦?
    22(1):tableView 有什么好的性能优化方案? (2): 界面卡顿和检测你都是怎么处理? (3):谈谈你对离屏渲染的理解? (4):如何降低APP包的大小 (5):日常如何检查内存泄露? (6):APP启动时间应从哪些方面优化?
    23 如何实现 dispatch_once iOS原理之CGD-dispatch_once的底层实现
    24* iOS读写锁的几种方法
    25* iOS开发中的11种锁以及性能对比 自旋锁和互斥锁的区别?
    26 #import 跟#include 又什么区别,@class呢, #import<> 跟 #import””又什么区别?
    27 􏵡􏳿􏰜􏰚􏱸􏰂􏱴􏱵简述分区情况?
    28 简述控制器的生命周期;简述APP项目的生命周期
    29 简述一下APP的启动过程,main文件说起,main函数中有什么函数,作用是什么?
    30 UIView和CALayer有什么区别?
    31 delegate和Notification区别?
    32 static关键字的作用
    33 线程同步的方式?列举几种进程的同步机制?进程之间通信?进程死锁原因?死锁的四个条件?死锁的处理?(大厂)
    34 自动释放池是什么?实现原理?如何工作?(阿里一面),ARC的工作原理,、ARC的底层原理,怎么实现自动释放的,和MRC的区别是什么?
    35 什么是推送消息?远程推送的原理?
    36 frame和bounds有什么不同?
    37 方法和选择器有什么不同?
    38 OC的垃圾回收机制?
    39 iOS平台怎么做数据的持久化?
    40 队列、进程和线程的区别(大厂一面) 进程和线程的区别?同步异步的区别?并行和并发的区别?
    41 进程间通信的方式(百度一面)
    42 多线程的方式和它们的区别(头条一面、阿里一面)
    43 iOS中有哪些锁?自旋锁和互斥锁的区别?
    44 介绍下内存的几大区域?
    45 浅拷贝和深拷贝的区别(阿里一面、头条三面)
    46 对于字符串使用strong会有什么问题?对于可变数组使用copy这样会有什么问题?
    47 你是如何组件化解耦的?(阿里一面)
    48 优化你是从哪几方面着手?(阿里一面)
    49 Pod update和pod install的区别(头条二面)
    50 介绍一下MVC,MVVM;MVC的一些缺点?MVC和MVVM的区别?
    51如何自己设计json转model(阿里二面)
    52 存一个通讯录,包括增删改查,用什么数据结构(腾讯一面)
    53 如何自己封装一个下载功能?断点续传如何实现的?
    54 知道哪些设计模式(阿里三面、腾讯一面)
    55 怎么防止别人反编译你的app?(阿里一面)
    56 你认为开发中那些导致crash?
    57 objc中向一个nil对象发送消息将会发生什么?
    58 如何实现夜间模式?
    59 内存管理、自动释放池与循环引用
    60 常用的设计模式

    相关文章

      网友评论

          本文标题:总结

          本文链接:https://www.haomeiwen.com/subject/rtvructx.html