iOS面试题总结与感想
来源:互联网 发布:mac可以远程控制吗 编辑:程序博客网 时间:2024/05/22 00:00
题
必须先吐槽一下,找工作面试确实是个累人的活呀,所以—>跳槽有风险,选择需谨慎
.LZ我为什么要换工作呢?就不在这里说明了…直接进入正题,这周的面试基本每天从早面到晚,面试表都填吐了…大小公司都有,列举下这段时间常见的面试题和一些个人理解.PS:LZ我水平有限,不好的地方,大家轻喷^_^!(因为完全是靠记忆,列举顺序纯凭感觉0.0)
@property
中的assign,retain,copy,nonatomic的意思分别是什么? (解释略…你懂的)weak
和assign
的区别,strong
和retain
的区别,copy
和retain
的区别?assign
适用于非对象类型,weak
弱引用在引用计数为0的时候会将对象置为nil.
其实从这个也可以引申到内存管理的一系列问题.面试官会让你讲讲MRC
和ARC
的理解,随即也引申出Block
的内存机制,为啥推荐Block
用copy
,Block
会存在哪些内存问题?循环引用?
推荐一个文章,讲的蛮不错的,里面也有对Block
的链接引用->传送门,请点击我- 依旧是内存管理,
release
和autorelease
的含义?这里尤其要强调下autorelease
,它引申出自动释放池
,也能引申出Run loop
!
参考下这两个链接:参考1号@参考2号(PS:有的链接可能需要翻墙,但是作为一个开发人员来说, 拥有VPN进行google还是必备的吧!) - OC语言的动态性指什么?有没有了解过
objective-c runtime
的相关问题?它包括那些含义?
依旧给出一些不错的文章链接:Number1@Number2@Number3 - 使用过
Core Graphic
Core Animation
Quartz Core
等常用框架吗?在什么条件下会用到?能够实现什么功能?一般这种问题,都是涉及到你自定义UI控件的能力,以及能够实现炫丽动画效果的能力.(含义很广,大家自行找资料,还是推荐个0.0->讲Core Animation的) - iOS中多线程有哪几种?各自之间有什么区别?这个问题,毋庸置疑,必问!!!
NSThread
:貌似基本没到过…囧….可以去了解下….NSOperation
:据说是用在处理复杂的情况下…经常被问到与GCD
的不同,LZ略纠结每次都不知道怎么回答,只能说一个处理复杂情况一个处理简单情况…也没用到过…不过你研究下AFNetworking
的源码,可以发现,它的核心类是继承NSOperation
的…GCD
:常用…这个可以看看我的博客,里面很多它的介绍! 点这里 - 数据存储这一块,你常用哪一种?什么是
序列化
?sqlite
是直接用它还是用封装了它的第三方库?sqlite
和core data
的区别?
LZ碰到的基本都是问sqlite
和core data
的区别…从什么方面来决定一个项目采用哪种方式来做存储…个人觉得没有必要区分谁好谁坏…都去了解掌握肯定是有好处的…网上有很多讲两个之间的区别,但是就算你知道区别,如果两个都用不好也是白搭.唯有一解->学!学!学
代理
和通知
…分别在什么情况下使用?区别?各自优点?(略,略,略,自行谷歌)- 你经常使用一些第三方库吗?比如
AFNetworking
SDWebimage
JsonModel
等,有没有去了解过里面的实现原理?
强烈推荐大家,最好都去看看源代码,不要只知其而不知其所以然
,能够学习到很多知识.也算是一次整体知识架构的温习,也能学习到一些优秀库的设计模式等. KVC
和KVO
是什么?- 是否了解
Socket网络编程
?是否明白TCP/IP
HTTP
UDP
等协议知识?
参考1号@参考2号…很多,自己去找吧 - 你知道哪些
设计模式
?实际项目中运用到了吗?(LZ我只回答了,单例-策略-观察者-工厂-代理
(其实我觉得代理不能算进去)) MVC
是什么?你能画出它们之间的关系图吗?(对的,画图)- 你的
C++
如何?算法和数据结构
呢?(这个都是泪呀)->依旧是补!补!补! Autolayout
的理解…使用的怎么样?可以看看我的这篇…虽然没详细讲Autolayout…大家可以多搜搜…这就是涉及到你写代码是纯代码
还是storyboard
了…建立两种都必须掌握.- 有没有学习
Swift
?这个,LZ建议,毕竟苹果给你开发的框架库没变,可以拿它写写Demo保持认识度,要不然,你只看不写,过一段时间又把它忘记了,就白看了…亲身体会…起码我现在能用swift
来写写一些Demo就用它来写写….工作肯定还是用OC啦,不过也有的公司说已经完全用swift
来开发了,只能说,毕竟还只是很少数的… - 目前暂时想到这些…如果还有,再更新!0.0
想
说下面试的感想吧:
+ 并不是会写OC,会调用API,你就是一个iOS开发工程师了…你必须扩展你知识的广度和深度,对于很多招聘要求你会C++的时候,不要老想着自己是来应聘iOS工程师而不是C++工程师…语言只是一种工具,当你功力OK的时候,你会发现去学习一门语言没有你想象的那么难,只能说要精通是略难的…很多时候需要的是你有那么一种概念,比如你项目中需要去调用一个库,那个库是C++写的,如果你完全看不懂,咋办…这也就是说并不是要你自己完全的去写一个出来…我们开发的很多时候,都是要善于运用第三方的框架…再举个例子,音频视频…解码转码或者什么什么的,具体的东西可能不需要你去了解,你只需要会使用一种工具(如:ffmpeg
)来完成它.
+ LZ我就像我上面说的那样…惭愧呀…不过算是从学swift
后,换了一种思想,不再那样的去排斥语言间的不同了,觉得自己也要在平时有空闲的时候,认真的学习下c++
(其实我以前是想做游戏的…还说自学cocos2dx
),也可以把大学里面有关计算机网络的书籍再次看下,多了解下网络编程…TCP/IP…HTTP协议等.
+ 开发应用,不要只停留在一个方向…多横向发展,接触下其他类型的应用.比如,我找工作就有意于IM
音频视频
等,毕竟没接触过…但是这只是个人意愿,前提别人肯要我,0.0哭0.0
+ 切记好高骛远,一步登天…技术需要沉淀,心态需要淡定,什么时候都要虚心学习.前面我说的都是建立在你做好基本事情的基础上…想想,啥都不精,没有一技之长,怎么能脱颖而出?怎么能够完成你所在岗位的任务?iOS开发这一块的知识也要保持不断的学习…UI布局-动画效果-逻辑控制-数据存储-和各端的对接-整体架构.
+ 公司的项目应该所有的都是结果导向性,如果你完成不了任务,那么你完成任务过程中所有的出彩点都会变得一无是处.
+ 依旧暂时想到这些…再想到别的,再更新…待续.~O(∩_∩)O~
- iOS面试题总结与感想
- iOS面试题总结与感想
- iOS面试题总结与感想
- iOS面试题总结
- iOS 面试题总结
- IOS 面试题总结
- iOS 面试题总结
- iOS 面试题总结
- IOS面试题总结
- iOS-遇见的面试题总结与分析
- 自己总结IOS面试题
- iOS面试题题总结
- iOS 开发面试题总结
- IOS面试题总结---先锋
- iOS面试题总结---block
- iOS 面试题总结(一)
- iOS 面试题小总结
- iOS常见面试题总结
- require.js的用法
- 计算机视觉(ComputerVision, CV)相关领域的网站链接
- Visual Studio查找高亮效果设置
- 《Linux内核设计与实现》读书笔记(十二)- 内存管理
- #笔记#圣思园 JavaWeb 第7讲——Servlet
- iOS面试题总结与感想
- could not initialize proxy - no Session
- 南京肇事宝马司机妻子:愿给每家补偿5万元
- 市面上最好的贵金属、原油喊单直播间 功能强大 稳定性最强 负载能力最高
- 微信公众号二维码 链接
- Linux地址映射--地址转换
- Oracle中的小知识
- url编码 处理特殊符号
- JAVA并发