iOS开发高级程序员面试题-答案

2024-07-02

iOS开发高级程序员面试题-答案(精选3篇)

1.iOS开发高级程序员面试题-答案 篇一

常见问题

你昨天/这周学习了什么?

你为什么热衷于软件开发?

你对哪一种控制系统比较熟悉?

是否参与过GitHub项目?

是否参与过GitHub或其他同类型网站的iOS开源项目?

请描述一下你的iOS应用开发流程。

是否熟知CocoaPods?它是什么?如何运行的?

请概括一下你对软件授权的理解,及其对软件开发的影响。

请概括一下你在构建iOS应用时的测试过程。iOS应用如何实现对其他语言、日期格式以及货币单位的支持?

请描述一下Instruments及其作用。

关于iOS技术

请解释一下Handoff是什么,并简述它是如何实现iOS、Mac/网页应用互通的。

iCloud包含了哪些技术与服务?

iOS扩展是指?能否列举一些热门或常见的范例?

HealthKit是什么?

HomeKit是什么?

Apple Pay是什么?能否描述一下如何在应用中使用Apple Pay?

请解释一下iOS应用沙盒机制。

VoiceOver是什么?请举例解释一下iOS中的辅助功能(Accessibility)。开发者如何使用这些功能?

iOS应用是如何实现后台多任务处理(Multitasking)的?

Game Center针对iOS游戏有哪些功能?

iBeacons是什么?

Cocoa/Cocoa Touch是什么?

请概括一下Core Audio,Core Data以及Core Location各是什么。它们对iOS应用有何意义?

请描述SpriteKit和SceneKit的作用。

Metal是什么?

响应链(Responder Chain)是什么?它是如何发挥作用的?

按钮和其他控制方式对哪些操作做出回应?

AppDelegate扮演着什么样的角色?

请解释一下NSUserDefaults。就你而言,你会如何在磁盘中对数组对象进行序列化?

你会如何储存用户的认证信息?

请问何为Keychain服务?

 

2.前端开发面试题及答案 篇二

前端开发面试题及答案

1、对Web标准以及W3C的理解与认识?

答:标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链CSS和JS脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件、容易维护、改版方便,不需要变动页面内容、提供打印版本而水需要复制内容、提高网站易用性。

2、XHTML和HTML有什么区别?

答:HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言 最主要的不同:

XHTML元素必须被正确地嵌套;

XHTML元素必须被关闭;

标签名必须用小写字母;

XHTML文档必须拥有根元素。

3、Doctype?严格模式与混杂模式-如何触发这两种模式,区分它们有何意义? 答:Doctype用于声明文档使用哪种规范(HTML/XHTML)

该标签可声明三种DTD类型,分别为严格版本、过度版本以及基于框架的HTML文档。

加入XML声明可触发,解析方式更改为IE5.5拥有IE5.5的bug。

4、行内元素有哪些?块级元素有哪些?CSS的盒模型?

答:行内元素:a b br i span input select

块级元素:div p h1 h2 h3 h4 form ul

CSS盒模型:内容,border margin padding5、CSS引入的方式有哪些?link和@import的区别是?

答:方式:内联 内嵌 外链 导入

区别:同时加载

前者无兼容性,后者CSS2.1以下浏览器不支持

Link支持使用javascript 改变样式,后者不可。

6.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?

答:标签选择符、类选择符、id选择符

继承不如指定 id>class>标签选择

后者优先级高

7、前端页面有哪三层构成,分别是什么?作用是什么?

答:结构层HTML 表示层CSS 行为层JS8、你做的页面在哪些浏览器测试过?这些浏览器的内核分别是什么? 答:Ie(Ie内核)

火狐(Gecko)

谷歌(webkit)

opear(Presto)

9、img标签上title与 alt属性的区别是什么?

答:Alt当图片不显示时,用文字代表

Title为该属性提供信息。

10、描述CSS Reset的作用和用途

答:Reset重置浏览器的CSS默认属性 浏览器的品种不同,样式不同,然后重

置,让他们统一。

11、http状态码有那些?分别代表是什么意思?

100-199 用于指定客户端应响应的某些动作。

200-299 用于表示请求成功。

300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。400-499 用于指出客户端的错误。

400 语义有误,当前请求无法被服务器理解。

401 当前请求需要用户验证

403 服务器已经理解请求,但是拒绝执行它。

500-599 用于支持服务器错误。

503 – 服务不可用

13.解释css sprites,如何使用。

Css 精灵 把一堆小的图片整合到一张大的图片上,减轻服务器对图片的请求数量

14.浏览器标准模式和怪异模式之间的区别是什么?

盒子模型 渲染模式的不同

使用 window.top.document.compatMode 可显示为什么模式

15.你如何对网站的文件和资源进行优化?期待的解决方案包括:

文件合并

文件最小化/文件压缩

使用CDN托管

缓存的使用

16.什么是语义化的HTML?

直观的认识标签 对于搜索引擎的抓取有好处

17.清除浮动的几种方式,各自的优缺点

1.使用空标签清除浮动 clear:both(理论上能清楚任何标签,增加无意义的标签)

2.使用overflow:auto(空标签元素清除浮动而不得不增加无意代码的弊端,使用zoom:1用于兼容IE)

3.是用afert伪元素清除浮动(用于非IE浏览器)

18.css hack

_marging IE 6

+margin IE 7

Marging:0 auto 9 所有Ie

Margin IE 8

前端开发面试题之Javascript部分

1.javascript的typeof返回哪些数据类型

Object number function boolean underfind

2.例举3种强制类型转换和2种隐式类型转换?

强制(parseInt,parseFloat,number)

隐式(== – ===)

3.split()join()的区别

前者是切割成数组的形式,后者是将数组转换成字符串

4.数组方法pop()push()unshift()shift()

Push()尾部添加 pop()尾部删除

Unshift()头部添加 shift()头部删除

5.事件绑定和普通事件有什么区别

6.IE和DOM事件流的区别

1.执行顺序不一样、2.参数不一样

3.事件加不加on

4.this指向问题

7.IE和标准下有哪些兼容性的写法

Var ev = ev || window.event

document.documentElement.clientWidth || document.body.clientWidth

Var target = ev.srcElement||ev.target

8.ajax请求的时候get 和post方式的区别

一个在url后面 一个放在虚拟载体里面

有大小限制

安全问题

应用不同 一个是论坛等只需要请求的,一个是类似修改密码的9.call和apply的区别

Object.call(this,obj1,obj2,obj3)

Object.apply(this,arguments)

10.ajax请求时,如何解释json数据

使用eval parse 鉴于安全性考虑 使用parse更靠谱

11.b继承a的方法

12.JavaScript this指针、闭包、作用域

13.事件委托是什么

让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!

14.闭包是什么,有什么特性,对页面有什么影响

闭包就是能够读取其他函数内部变量的函数。

15.如何阻止事件冒泡和默认事件

canceBubble return false

16.添加 删除 替换 插入到某个接点的方法

obj.appendChidl()

obj.innersetBefore

obj.replaceChild

obj.removeChild

17.解释jsonp的原理,以及为什么不是真正的ajax

动态创建script标签,回调函数

Ajax是页面无刷新请求数据操作

18.javascript的本地对象,内置对象和宿主对象

本地对象为array obj regexp等可以new实例化

内置对象为gload Math 等不可以实例化的宿主为浏览器自带的document,window 等

19.document load 和document ready的区别

Document.onload 是在结构和样式加载完才执行js

Document.ready原生种没有这个方法,jquery中有 $().ready(function)

20.”==”和“===”的不同

前者会自动转换类型

后者不会

21.javascript的同源策略

3.阿里巴巴ios面试题 篇三

“全世界有多少辆汽车?”

不知道有多少“微软面试题”,”google面试题"在网上到处流传。

其实恰恰反了,这些不着调的面试题,并不因为它是微软和google的面试题就变得高深莫测。之所以会有这样的题目出现,正是以其极度的不靠谱反衬了这些大公司对“过程比答案重要”的诠释,和对自己的面试官面试的把控能力的信心。

对于一个合格的面试官来说,问题只是话题的起点。所以精心准备的答案可能在面试官的一次追问后全盘崩溃,一开始支支吾吾的面试者,也可能在面试官逐渐的引导下展示出自己的能力。

我常常提一个观点,面试和考试不同,面试可能因为一个问题答得好而通过,也可能因为一个回答不好而通过。其实面试只有结果,没有分数。设想以下场景:

“能解释一下http协议中302这个状态码是什么吗?”,“我不记得了。” (0分)

“能解释一下http协议中302这个状态码是什么吗?”,“哦,记不清了,我只记得404是找不到页面,304是可以从缓存读取,5xx是服务端错误” (加分,了解一定http状态)

“能解释一下http协议中302这个状态码是什么吗?”,“啊,那个,应该是服务端错误吧?”(倾向于面试不通过,不了解的时候尝试猜测蒙混,这种特质对工作不利)

你看,同样的一个问题,同样是应聘者不知道问题的答案的情况,结果却大相径庭。

所以,面对面试题,过程重于结果,纠结于题目、准备答案是不会有任何意义的。

面试时该如何做呢?以下是我的几点建议:

厘清问题,必要时可以跟面试官沟通确认,避免误解,不但理解问题,还要同时思考面试官的意图

不急于开始回答,可以先分析问题,列举实际案例,争取思考时间

不限于回答问题,可以以对面试官意图的理解为基础,主动讲解相关知识,展示自己对相关领域的体系化思考

正面承认自己了解和不了解的东西,不敷衍,不猜测,有记不清的地方,可以正面要求面试官提示

以上四点,都是只有面试场景才能够使用的,这也是为什么我说“面试和考试不同”。

关于争论

技术相关岗位中,常常有这样的抱怨:“面试官技术比我弱怎么办?面试官跟我争论技术问题怎么办?”

通常情况下,面试官不应该也不会跟应聘者讨论技术问题本身,比如我,如果觉得应聘者回答错误,会尝试以追问的形式考查应聘者能否自圆其说,一些概念性错误,我则会追问其来源出处,直到对方无法回答。

当然,不怕一万,就怕万一,作为应聘者,万一遇到了这样的事情,而且面试官真的错了怎么办?

虽然面试官在这样的场景下天然强势,但其实也不是完全没有办法,有三点,至少可以缓解问题:

一、不要正面否定对方,尝试认同对方观点合理性,再从侧面反驳。

二、展示推理过程,从双方共同认可的观点出发,层层推理得出你的结论,在过程中,不断跟面试官讨论确认。

三、引述出处,使用专业词汇,使得面试官对你的观点天然产生敬畏,不敢草率否定。例如:

“说说为什么JavaScript是一门基于对象的语言而不是面向对象的语言?” “JavaScript明明就是面向对象啊?”(惨死,还是冤死)

“说说为什么JavaScript是一门基于对象的语言而不是面向对象的.语言?” “哦,JavaScript的语言规范ECMA262的序章里面提到过JavaScript是面向对象的语言,而ECMA262名词解释里也提到了JavaScript是基于对象的语言。在它这个定义里面,面向对象是指以对象为主要抽象工具,描述逻辑,基于对象是指基础库和运行时设施。

以对象为基础来设计。所以JavaScript既是面向对象,又是基于对象。JavaScript是基于对象的语言而不是面向对象这个说法我好像也听过,但是记不太清了,因为觉得语言规范比较权威嘛,呵呵”(说的有凭有据,又留足面子,至少得回去掂量一下……)

其实“不靠谱的面试官”很少出现,这样的突发情况并不是总能处理好,我们要尽最大努力,剩下的就凭运气了……

关于简历

一个人合适不合适,在面试前就决定了大半。一个简历看上去合格的应聘者,面试阶段可能只是确认简历上内容的真实性罢了。

有些应聘者,尤其是应届生特别容易受到各种传奇故事的感染,追求出位。其实简历只是信息的载体,不管它有多好看,不管你制作的多认真,最重要的还是它的内容。

所以,简历上最重要的是什么呢?各个岗位有所不同,下面是我对技术岗位的简历上比较看重的内容:

工作履历,尤其是上一份工作,公司名是否听过,公司档次,如BAT、FLG,岗位

教育经历,是否是top2 是否是国外名校,是否是985、211学校,是否有ACM竞赛获奖经历

技术社区贡献,blog是否有深度内容,是否有稳定更新,github上有没有高质量开源项目

项目经历,项目的规模,复杂程度,其中体现的

个性化内容:技术视野,个人成长经历,个人研究内容,学习方法

写简历的时候,首先要明白,HR或者主管查看简历的时候,一般只会花费1分钟,于是有以下几点建议

这其中次要信息越少,重要信息就越突出

任何复杂的排版方式,都会加大阅读困难

变色强调非常有用,可以突出重点,但是到处变色强调是灾难

技能列表,精通和熟悉,这些内容价值不高,偶尔还会惹麻烦

应届生常犯的错误是使用网上的各种简历模板,然后拼凑内容。没有项目经历硬造项目经历,找一些亲友开的公司硬挂靠顾问甚至总裁助理职位,这些东西会阻碍面试官看到真正有价值的内容。

正确的写简历方式是用一张白纸,先写好必要的个人信息和联系方式,然后列出所有你觉得自己做过的有价值的事和拿到的荣誉,按照从重要到不重要依次排列,再做简单的分类组织。

然后,问题来了,对很多人来说,这个列表是空的?怎么办?

我的建议是,既然是空的,那就不写,请把经历放在个性化内容上,从技术视野,个人成长经历,个人研究内容,学习方法中,选择一项,深入谈谈你做过的努力,这些也有可能打动面试官,比硬性拼凑的内容强过百倍。

了解招聘方

了解每个企业的部门结构和招聘节奏,非常有利于拿到offer。咳咳,现在是广告时间:

阿里巴巴的校园招聘分为春秋两季,每一季招聘又分为提前批次、正式招聘和补招三部分。

提前批次招聘不论是否通过都不影响参加后续招聘,是阿里各部门独立运作的招聘阶段,可谓额外的福利,可以找阿里内部的师兄师姐帮忙推荐到想去的部门,注意这个时候是没法改部门的,如果你有明确意向,务必说明。

正式招聘是阿里集团统一的招聘,会到全国主要城市面试,需要先通过网上答题笔试。如果笔试不过,霸王面也有微弱几率获得面试机会。

补招只针对未能参加校招面试的同学,会持续比较长时间,但是除非有特别情况正式招聘不通过的情况下无法参加。

现在正是提前批次招聘,对阿里无线前端有兴趣的同学,请投简历到 ali-mfe-hire@list.alibaba-inc.com

上一篇:寿险的意义与功用演讲稿下一篇:中科院微电子研究所