iOS开发工程师面试题--中级
中级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开发工程师面试题--中级相关推荐
- iOS开发工程师笔试题
iOS开发工程师笔试题 1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? Object-c的类不可以多重继承:可以 ...
- python运维脚本面试_运维开发工程师 面试题 shell编程
1. 32位随机密码生成 cat /proc/sys/kernel/random/uuid | tr -d '-' 2.查看当前系统每个ip的tcp连接数 -n 强制显示IP地址 -t 显示TCP连接 ...
- 移动开发工程师面试题集:Android iOS
2019独角兽企业重金招聘Python工程师标准>>> 移动开发工程师面试题集:Android & iOS 移动开发也称为手机开发,或叫做移动互联网开发,移动市场暗流涌动,春 ...
- java中级职称考试试题_Java中级开发工程师笔试题及答案2016
Java中级开发工程师笔试题及答案2016 java中级工程师考试试题你做了吗?下面随yjbys小编一起来看看最新Java中级开发工程师笔试题及答案,仅供考生参考! 1) 描述Web Service的 ...
- 前端开发工程师面试题2
前端开发工程师面试题2 1.Doctype作用? 严格模式与混杂模式如何区分?它们有何意义? (1). 声明位于文档中的最前面,处于 标签之前.告知浏览器的解析器,用什么文档类型 规范来解析这个文档. ...
- python开发工程师面试题-2019超实用Python开发工程师面试题分享
原标题:2019超实用Python开发工程师面试题分享 Python诞生很早,但真正火爆时间并不长.目前Python语言的应用领域非常广泛,主要有系统编程.图形处理.数学处理.文本处理.数据库编程.网 ...
- 下列不属于python第三方库的是-python后端开发工程师考证试题
原标题:python后端开发工程师考证试题 python开发工程师考证试题 选择题 题目 关于 Python 程序格式框架的描述,以下选项中错误的是 ( A ) A: Python 语言不采用严格的& ...
- 微博面试Java,微博java开发工程师面试题整理
下面要给大家分享的是一个小伙伴的微博java开发工程师一面的面试题,一起来看看微博java开发工程一面面试题都有哪些吧! 面试题(一面) 1.做一个小时笔试 2.java创建对象的几种方式是什么? 用 ...
- python定义一个字典、存储雇员号和姓名_【一点资讯】python后端开发工程师考证试题...
python开发工程师考证试题 选择题 题目 关于 Python 程序格式框架的描述,以下选项中错误的是 ( A ) A: Python 语言不采用严格的"缩进"来表明程序的格式框 ...
- 面试开发可以用python_Python开发工程师面试题(五)
嗨,今天周四了,开不开心?高不高兴?快不快乐?(⊙o⊙)-不说了,我又飘然而至~奉上<Python开发工程师面试题(五)>,点赞+关注+收藏后,记得好好学习哟. 21. 列举您使用过的py ...
最新文章
- jquery mysql jsp搜索功能_实现搜索框自动提示功能(jquery+php)
- httpclient 登录人人,并且发表说说。
- ASP.NET Core Web API下事件驱动型架构的实现(三):基于RabbitMQ的事件总线
- Win11如何使用多桌面功能?Win11使用多桌面功能的方法
- 回溯法——素数环C++实现
- 计算机的创新产品,这几种电脑创新功能 空有喝彩没人买
- C语言方差和标准差公式,方差概念及计算公式.docx
- 计算机变成英语,win10系统下计算器界面变成英文界面了怎么办
- CST2020 安装包和安装步骤
- java 获得文本框文本_Java获取和删除Word文本框中的表格
- docker删除容器
- tomcat介绍:安装与优化
- 基于canvas实现波浪式绘制图片
- 布莱克斯科尔斯模型(四)方程推导过程
- 【常规篇】浏览器被其他网页恶意篡改主页解决办法
- php cms使用视频教程,phpcms建站视频教程
- 【通关MySQL】Win11如何将MySQL卸载干净?
- 解决用友T6最新会计期间与最新会计日期不匹配的问题
- 2020 ViVO面试题
- 人工智能生态环境预测_人工智能在生态领域的应用研究
热门文章
- canvas画正六边形
- android手机有哪些版本,支持安卓5.0的手机有哪些 android5.0手机汇总
- 联盛德 HLK-W806 (十三): 运行FatFs读写FAT和exFat格式的SD卡/TF卡
- js实现form的submit请求
- 【计算机视觉】opencv靶标相机姿态解算1之基本概念(空间旋转、旋转轴)
- 在x86下交叉编译mips程序
- 联想服务器系统备份,操作演示:恢复预装系统前的数据备份方法
- ajax post forbidden,解决 Ajax 发送 post 请求出现 403 Forbidden 的三种方式
- 咖说 | 哪怕遭受攻击,DeFi协议也很快能“春风吹又生”?
- oracle导数时不包含某个表,EXPDP导数报ORA-00942案例