中级iOS开发工程师面试题


1.MVC的理解

MVC即(Model-View-Controller)是模型-视图-控制器的缩写。是一种架构设计,并不属于基本的设计模式(23种设计模式)。

M(Model)数据模型:负责定义、存储、操作数据。比如数据库操作。

V(View)视图:用来展示视图,并进行用户交互

C(Controller)控制器:M和V的协调者,控制获取数据,将数据交给视图去展示。算是链接数据和视图的桥梁。

其中M和V不能直接通信,必须通过C来传递数据和事件。

2.对进程和线程了解多少

关系:

1.数量角度:一个线程只能属于一个进程,而一个进程可以包含多个线程,但至少包含一个线程。

2.资源角度:资源分配给进程,同一个进程中的线程共享该进程的所有资源。

3.线程是进程内的一个可执行单元,也是进程内的可调度实体。

4.真正运行在处理机上的是线程。

5.线程在执行过程中需要协作同步。不同进行的线程间要利用消息通信的办法实现同步。

区别:

1.拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于所在进程的资源。

2.调度:线程作为调度和分配的基本单元,进程作为拥有资源的基本单位(系统根据进程分配资源)。

3.并发性:不仅进程间可以并发执行,同一个进程中的多个线程之间也可以并发执行。

4.系统开销:创建或者销毁进程的开销比较大,因为进程在分配和撤销时需要创建和回收资源。

5.健壮性:进程有自己独立的系统空间,线程没有,进程的撤销对其他进程没有影响,而线程的撤销将可能使所在进程死掉。所以,多进程的程序比多线程的程序健壮。但在进程切换时耗费的资源比较大,效率差。

3.进程的同步与死锁。

进程的同步机制:原子操作,信号量机制,管道,共享数据等。

  • 同步:避免对同一数据的并发访问(通常由中断、对称多处理器、内核抢占等引起)称为同步。
  • 原子操作:原子操作确保对同一数据的“读取-修改-写入”操作在它的执行期间不会被打断,要么全部执行完成,要么根本不会执行。
  • 信号量机制:信号量S是一个整数,S大于等于零是代表可供并发进程使用的资源实体数,当S小于零时则表示正在等待使用临界区的进程数。
    Dijkstra同时提出了对信号量操作的PV原语。

死锁

死锁的原因

资源竞争和进程推进次序不当。

死锁的4个必要条件

互斥、不可剥夺、请求保持、环路。

死锁的处理

鸵鸟策略、预防策略、检测与解除死锁。

其中同步和死锁的部分在操作系统都有。

4.kvc kvo
kvc:键值编码,一种间接访问对象实例变量的机制,该机制可以不通过存取方法就可以访问对象的实例变量。

kvo:键值观察,一种能使的对象获得到其他对象属性变化的通知机制,也就是所谓的观察者。

kvo的实现必须使用KVO来修改实例变量。这样观察者才能观察到。因此kvc是kvo的基础。

深复制和浅复制
深复制:不仅复制对象本身,对象的属性对象也要复制,注意这里复制内容

浅复制:支付至对象本身,不对里面的属性复制,因此删除原来的对象,新对象中的属性对象的值就成为错误的值了。

assign、copy、retain、nonatomic

  • assign:普通复制,一般用于基本数据类型,常见委托设计模式,一次来防止循环引用。
  • retain:保留计数,获得了对象的所有权。引用计数在原有基础上+1.
  • copy:一般字符串使用copy。Foundation中的不可变对象使用copy属性,效果相当于retain,只是引用计数+1.
  • nonatomic:非原子性访问,不加同步,多线程并发访问会提高性能。默认为nonatomic

以上一般都在在非ARC情况下才出现的关键词

strong和weak

strong 强引用,weak弱引用,ARC下,strong被翻译成retain,weak相当于手动管理的assign,代理协议的属性,依然用assign,防止出现循环引用。

_unsafe_unretained与weak

_unsafe_unretained与weak功能一致,区别在于,当指向的对象销毁后,weak换将变量置为nil,防止调用野指针。

ARC存在内存泄露吗?

存在循环引用会导致内存泄露(原因主要在于:协议),Objective-C对象与CoreFoundation类之间的桥接管理不当也会产生内存泄露。

事件响应者链
响应者链表示一系列的响应者对象,事件先被交由第一响应者对象处理,如果第一响应者对象不处理,事件被沿着相应者链向上传递,交给下一个响应者。

View->parent view ->ViewController->window->application->丢弃事件

svn git熟练程度

打包静态库

APP发布上架流程等

Storyboard使用

视图加载顺序

框架模型

iOS开发工程师面试题--中级相关推荐

  1. iOS开发工程师笔试题

    iOS开发工程师笔试题 1.   Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? Object-c的类不可以多重继承:可以 ...

  2. python运维脚本面试_运维开发工程师 面试题 shell编程

    1. 32位随机密码生成 cat /proc/sys/kernel/random/uuid | tr -d '-' 2.查看当前系统每个ip的tcp连接数 -n 强制显示IP地址 -t 显示TCP连接 ...

  3. 移动开发工程师面试题集:Android iOS

    2019独角兽企业重金招聘Python工程师标准>>> 移动开发工程师面试题集:Android & iOS 移动开发也称为手机开发,或叫做移动互联网开发,移动市场暗流涌动,春 ...

  4. java中级职称考试试题_Java中级开发工程师笔试题及答案2016

    Java中级开发工程师笔试题及答案2016 java中级工程师考试试题你做了吗?下面随yjbys小编一起来看看最新Java中级开发工程师笔试题及答案,仅供考生参考! 1) 描述Web Service的 ...

  5. 前端开发工程师面试题2

    前端开发工程师面试题2 1.Doctype作用? 严格模式与混杂模式如何区分?它们有何意义? (1). 声明位于文档中的最前面,处于 标签之前.告知浏览器的解析器,用什么文档类型 规范来解析这个文档. ...

  6. python开发工程师面试题-2019超实用Python开发工程师面试题分享

    原标题:2019超实用Python开发工程师面试题分享 Python诞生很早,但真正火爆时间并不长.目前Python语言的应用领域非常广泛,主要有系统编程.图形处理.数学处理.文本处理.数据库编程.网 ...

  7. 下列不属于python第三方库的是-python后端开发工程师考证试题

    原标题:python后端开发工程师考证试题 python开发工程师考证试题 选择题 题目 关于 Python 程序格式框架的描述,以下选项中错误的是 ( A ) A: Python 语言不采用严格的& ...

  8. 微博面试Java,微博java开发工程师面试题整理

    下面要给大家分享的是一个小伙伴的微博java开发工程师一面的面试题,一起来看看微博java开发工程一面面试题都有哪些吧! 面试题(一面) 1.做一个小时笔试 2.java创建对象的几种方式是什么? 用 ...

  9. python定义一个字典、存储雇员号和姓名_【一点资讯】python后端开发工程师考证试题...

    python开发工程师考证试题 选择题 题目 关于 Python 程序格式框架的描述,以下选项中错误的是 ( A ) A: Python 语言不采用严格的"缩进"来表明程序的格式框 ...

  10. 面试开发可以用python_Python开发工程师面试题(五)

    嗨,今天周四了,开不开心?高不高兴?快不快乐?(⊙o⊙)-不说了,我又飘然而至~奉上<Python开发工程师面试题(五)>,点赞+关注+收藏后,记得好好学习哟. 21. 列举您使用过的py ...

最新文章

  1. jquery mysql jsp搜索功能_实现搜索框自动提示功能(jquery+php)
  2. httpclient 登录人人,并且发表说说。
  3. ASP.NET Core Web API下事件驱动型架构的实现(三):基于RabbitMQ的事件总线
  4. Win11如何使用多桌面功能?Win11使用多桌面功能的方法
  5. 回溯法——素数环C++实现
  6. 计算机的创新产品,这几种电脑创新功能 空有喝彩没人买
  7. C语言方差和标准差公式,方差概念及计算公式.docx
  8. 计算机变成英语,win10系统下计算器界面变成英文界面了怎么办
  9. CST2020 安装包和安装步骤
  10. java 获得文本框文本_Java获取和删除Word文本框中的表格
  11. docker删除容器
  12. tomcat介绍:安装与优化
  13. 基于canvas实现波浪式绘制图片
  14. 布莱克斯科尔斯模型(四)方程推导过程
  15. 【常规篇】浏览器被其他网页恶意篡改主页解决办法
  16. php cms使用视频教程,phpcms建站视频教程
  17. 【通关MySQL】Win11如何将MySQL卸载干净?
  18. 解决用友T6最新会计期间与最新会计日期不匹配的问题
  19. 2020 ViVO面试题
  20. 人工智能生态环境预测_人工智能在生态领域的应用研究

热门文章

  1. canvas画正六边形
  2. android手机有哪些版本,支持安卓5.0的手机有哪些 android5.0手机汇总
  3. 联盛德 HLK-W806 (十三): 运行FatFs读写FAT和exFat格式的SD卡/TF卡
  4. js实现form的submit请求
  5. 【计算机视觉】opencv靶标相机姿态解算1之基本概念(空间旋转、旋转轴)
  6. 在x86下交叉编译mips程序
  7. 联想服务器系统备份,操作演示:恢复预装系统前的数据备份方法
  8. ajax post forbidden,解决 Ajax 发送 post 请求出现 403 Forbidden 的三种方式
  9. 咖说 | 哪怕遭受攻击,DeFi协议也很快能“春风吹又生”?
  10. oracle导数时不包含某个表,EXPDP导数报ORA-00942案例