ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:40.10KB ,
资源ID:12543849      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12543849.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(面试实战.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

面试实战.docx

1、面试实战面试过程:10:00 到公司,前台MM给了张面试人员登记表,10分钟搞定表格。10:30 由于公司BOSS正在面试其他人,因此,又等了几分钟。10:40 在BOSS办公室与BOSS斗智斗勇,聊了有接近1个小时。疯狂的笔试+面试记录(前方内容“高能”:funk:,请准备高度精神集中前行):1. 笔试由于BOSS正在打造公司新业务,刚刚开始组建公司技术团队,公司没有人懂IT技术,故本次面试没有笔试题,额。2. 面试过程问答精选:旁白:进入办公室后,我淡定等待,约莫几分钟后,一位35岁左右,看起来非常老道的BOSS走了进来。几句寒暄之后,问了我一些关于我的学校、专业、工作经验、接触的Andr

2、oid项目等普通流水线式的没有营养问题,轻松搞定!接着,BOSS终于切入到了重点:BOSS问:其实我们想做一个快递业务的APP,类似于滴滴打车。用户如果想要寄快递,只需要打开APP,查找附近都有哪些快递员,然后直接跟附近的快递员联系。如此,既能方便用户,又能提高快递员的收入。我()答:我有一个问题想要问一下,咱们公司(注意,一定要说“咱们”,让别人感觉你已经融入他们的公司团队了)不像顺丰,不是典型的物流公司,为什么我们要做快递类的APP呢(主动沟通交流,有问题就问,这样面试官才能跟你聊起来!)?BOSS答:你知道的那些物流公司现在都是各自为政。例如,你用顺丰快递,你可以下载个顺丰的APP。但是

3、,你以后可能还要用中通、申通、圆通等等这些物流公司,难道你要下载十几个APP吗?而我们要做通用的快递类APP!BOSS问:你知道一个APP重要的是什么吗?答:用户体验!BOSS说:不对,是流量,也就是用户数量(好吧,作为技术屌丝,关注多的就是APP用户体验,所以,不敢去反驳他,先顺着他的意思来)。BOSS问:如果让你去做一个类似于滴滴打车的APP,你认为自己做的出来吗?我()答:像滴滴打车这样的APP,不仅仅只是客户端的问题。它不是由几个简单的客户端程序员就能做出来的,实际上,它应该是由一个技术团队完成的大型项目。您目前能够看得见的仅仅是用户客户端,看不见的是庞大的后台系统。说详细点就是:滴滴

4、打车这样的项目应该分3部分:服务器端,用户客户端,出租车司机客户端。服务部端考虑的是数据的存储,业务的调度处理,以及与各个客户端的数据交互。而用户客户端我个人理解主要是一个UI的显示和与用户数据交互的功能。比如,用户将自己的当前坐标发送到服务器端(当前坐标可以通过XX地图、高德地图获取),服务器根据用户的坐标查找附近的所有空闲状态的出租车,然后将用户的用车需求推送到出租车司机客户端端。出租车司机接收到信息后,如果愿意接这笔单子,就向服务器发送同意信息。服务器就是作为一个中介将用户与出租车司机联系起来。大概逻辑就是这样一个过程,中间的技术细节比较多。总之,一个人做滴滴打车是不太现实的(大家可以看

5、出来,这一段,是傻瓜式教学,没有说的太复杂,好让BOSS能够听明白。不然,技术说的太深,BOSS就不知道说什么了,还怎么聊的开心。面试的最终目的就是让对方觉得看你很顺眼,这是关键!)。(顺便啰嗦一下,的Android课程中有部分JavaWEB课程。我们做为APP开发人员,不管是服务器端还是移动端都应该有所了解。如果仅仅会移动端开发技术而不懂服务端知识,长久看来,确实会很影响Android程序员向更高层次发展。)BOSS问:那么,如果我让你负责客户端的开发呢?我()答:客户端Android开发并不难,比如支付宝是一个很强大的金融系统。但是,你让我做它的Android端开发,我感觉我没问题。毕竟,

6、Android客户端重点是信息的展示和与用户的交互。所以一个人做客户端是没有问题的。但是,目前市场上的企业很少有一个人做一个客户端项目的。市场竞争如此激烈,一个人做耗时太长,可能你还没有做出来,产品已经被淘汰了。因此,应该多招几个Android程序员,这样团队就算有人员流失也不会影响整个公司的发展(展示自己对于项目组人数把控的个人看法)。旁白:几轮PK下来,BOSS基本上对我已经很信服了。BOSS说:其实,在面试你之前,我已经招聘到了两个移动开发的程序员,一个是Android程序员(6K),一个是iOS程序员(8K),你可以看一下他们两个的面试登记信息和他们的简历。我()问:根据这两份简历可以

7、看出来,这两个人的技术有些一般(不是装逼,他们的简历写的确实有点LOW)。BOSS问:是的,我看的出来,你的经验要比他们丰富地多。所以,我准备让你出任我们公司的技术总监,带着他们两个做客户端开发,你认为你有信心做好吗?我()答:这个职位我以前没有做过,所以心里没有多大的底(认为这样的问题确实比较考验人,你直接回答“可以,没问题”,就会显得你浮夸、不谨慎、办事不牢靠。如果你直接回答“不能”,又显得你不敢担当,没有上进和挑战的精神。因此回答这样的问题必须两者兼顾,既要谦虚谨慎又要表现出富有挑战精神)。BOSS说:我知道你没有做过,但是,一个人挑战任何一样新工作之前都是没有做过的。你有没有想过一旦你

8、能够胜任我们的公司的技术总监,你以后的身价将和现在完全不同,所以,对自己要有一些信心(BOSS故意画大饼,就说明你有戏了!)。当然,这是一个管理岗位,需要什么样的技术人员你可以招。我()说:好吧,其实我希望挑战一下,但是我不一定能够达到您对我那么高的期望(始终保持谦虚的态度很重要!你的态度决定别人对待你的态度!)。BOSS问:你尽力就好,请问你的期望月薪是多少?我()答:15k(第一次面试,我心里也不太清楚上海的市场,15k一般是班里的大神级同学要的薪资,所以,试水一下)。BOSS说:好的,没问题(竟然没有砍价:L,额,土豪公司)。旁白:随后,又和BOSS聊了一些其他内容,由于BOSS马上要开

9、会,就告诉如果你同接受我们的邀请,那么我希望我们明天下午可以好好聊聊。之后,一堆寒暄,不列出来了。虽然,第一家面试就这样结束了,没有技术上太多的PK。但是,却使在精神上却得到了巨大的鼓励,面试第二家上海公司有了更大的信心!面试吐槽:的上海处女面就这样丢掉了!遗憾的是BOSS不太懂技术,没有碰撞出技术的火花。但是,让人幸运的是他提供给我了一个技术总监的岗位。整个过程可以看到,面试的时候,面试官一方面会明中考察我们的技术。另一方面,在暗中实际上也在考察我们的沟通能力、思维逻辑能力、管理能力等这些软实力。所以,的每一位达人,在拼命码代码的同事,别忘了多和你的小伙伴分享技术,不要忘记中午的时候抓住每一

10、次的公开演讲机会。有时候,一个人综合实力远大于单纯的技术竞争力!加油吧,骚年们!面试过程:14:00 到公司,前台MM给了一张面试登记表和一张Android笔试试题,然后一位和蔼的大叔(技术大拿)将我带公司接待处,让我开始笔试。14:20 笔试完成,笔试很简单,做完后把试题交给前台,前台帮我联系面试官。14:25 跟一个年龄大概在2530岁之间的年轻技术官进行了接近1个小时的面试(通过交谈感觉面试官应该是项目经理或者开发组组长)。15:20 人事面试,人事面试后提前跟我说CTO会对我进行一个电话复试。第二天晚上大概19:00,公司CTO对我进行了技术复试,总共持续了31分钟。电话复试题要比初试

11、难的多了,姜还是老的辣。我把复试的对话录音保存下来了,作为以后上海就业指导课程的案例讲解(内容何止“高能”,简直就是高达!)。疯狂的笔试+面试记录(前方内容“残酷”:funk:,请准备受虐心态前行):1. 笔试笔试时出现了一个小插曲,和大家分享一下。笔试所在的接待区是一个半开放式的区域,共有3张桌子,每张桌子上都有一支签字笔。我先用第一张桌子,发现笔是坏的(郁闷),然后换到第二张桌子,发现笔还是坏的(心想:尼玛,这么霉,顺便汗一下),最后只能换到第三张桌子,你猜怎么滴,对,笔还是坏的(想要骂娘了,FUCK!)。没辙了,翻遍我的背包,自己也没带笔。难道企业是用这种方式考察一个应聘者的吗?这怎么办

12、?我想去前台借吧,前台肯定有(不要去人事那里借,前台毕竟只是前台,不会管你太多的细节,人事可就不一样了,他们会认为一个面试者来比试不带笔是极不严肃的表现)。热心的前台MM很乐意地把自己的笔借给了我(心里一阵暖啊!这家必须拿下!)。为了方便大家更清晰的看到笔试题目,手录笔试题和答案,看你能做对多少?!Q:Android的四大组件有哪些?A:Activity、Service、ContentProvider、BroadcastReceiver。Q:请描述下Activity的生命周期?A:onCreate、onStart、onResume、onPause、onStop、onDestroy、onRest

13、art。Q:如何将一个Activity设置成窗口模式?A:将Activity的样式设置成:android:theme=android:style/Theme.DialogQ:如何退出Activity?如何安全退出已调用多个Activity的Application?A:调用Activity的finish方法可以退出当前Activity。可以自定义一个Application,在Application中声明一个成员变量ArrayList用于存放打开的Activity,当退出时遍历ArrayList,依次调用Activity的finish方法。Q:请介绍下Android的五种布局。A:LinearLa

14、yout、RelativeLayout、FrameLayout、RelativeLayout、TableLagoutQ:请介绍下Android的数据存储方式。A:SharedPreference、XML、SQLite、文件系统Q:DDMS和TraceView的区别。A:DDMS 的全称是DalvikDebugMonitorService,是 Android 开发环境中的Dalvik虚拟机调试监控服务。TraceView是程序性能分析器Q:说说Activity、Intent、Service以及他们之间的关系。A:Activity负责界面的显示和用户的交互,Intent封装了数据,可以实现Acti

15、vity之间以及Activity和Service之间数据的传递。Service运行在后台进程,一般我们会让给其运行一些后台任务,Activity通过StartService(Intent)或者BindService(Intent)可以启动Service。Q:请介绍一下ContentProvider是如何实现数据共享的。A:我们可以定义一个类继承ContentProvider,然后覆写该类的insert、delete、update等方法,在这些方法里访问数据库等资源。同时将我们ContentProvider注册在AndroidManifest文件中,其他应用需要使用的时候只需获取ContentR

16、esolver,然后通过ContentResolver访问即可。2. ROUND 1:PK项目经理技术面试问答精选项目经理问:Activity都有哪些生命周期?我()答:这个问题其实在笔试题中我已经给出答案了(此时,表示非常疑惑)。项目经理说:我知道,你再说一遍。旁白:当时我真没搞明白,为何笔试上的题目他还是问我一遍,而且笔试上的好几道题他都重复问了一遍。现在想想应该是他怀疑我笔试的时候作弊了,比如我可以XX什么的。好吧,我不就是笔试的时候出去跟前台妹子借了一支笔,然后又把笔试题给拍了个照片而已嘛。而且,我那3G的联通定制机安装的移动4G的卡,只能享受2G的网速,我打开个XX都得几分钟。算了,

17、不能和面试官较劲!我忍!我()答:Activity有以下生命周期回调方法,比如常用的有onCreate、onStart、onResume、onPause、onStop、onDestroy、onRestart。默认情况下,如果我们不给Activity设置横竖屏配置信息的话,在横竖屏切换时会将一个Activity销毁掉然后重新创建。项目经理问:Fragment你用过吗?我()答:这个当然用过呀。现在的应用中基本都有Fragment的应用,Fragment比较小巧灵活。项目经理问:那Fragment跟Activity之间是如何实现值传递的?旁白:其实项目经理在问我会不会Fragment的时候,我已经

18、预料到接下来会问我Fragment跟Activity直接的值传递问题。对于前面的问题,如果我说不会,就不会有下面的问题,但是如果说不会的话,那么项目经理很可能因为这一个问题而把我PASS掉,因为Fragment是Android中一个非常重要的知识,这个是必须会的(的Android基础课程中有一天就是讲Fragment的)。如果连这个都不会,那么再好的面试技巧也挽救不了同学们的!我()答:Activity可以先获取FragmentSupportManager或者FragmentManager,前者是v4包下的,向下兼容因此用的比较多。然后这些Manager通过Fragment的tag或者id调用

19、findFragmentByTag(tag),findFragmentById(id)找到我们需要的Fragment对象,然后通过调用Fragment对象的方法来进行值的传递。项目经理问:Android中都有哪些组件需要在清单文件中注册?旁白:四大组件是学习Android的必会知识点,也是Android基础中的重点内容,因此这个问题同学们其实应该是很好回答的!我()答:一般来说四大组件都需要在AndroidManifest.xml中进行注册,不过其中Activity、Service、ContentResolver是必须注册的,而BroadCastReceiver可以在清单文件中注册,也可以不注

20、册,这也分别叫做静态注册和动态注册。旁白:在Android中一般通过XML文件注册的组件,我们叫静态注册,而通过代码注册或者创建的组件我们叫做动态注册。动态注册和静态注册这两个名称听起来很高大山,其实理解起来so easy滴!项目经理问:你自己有做过自定义控件吗?我()答:自定义控件做过,比如我们项目中的SlideMenu,LazyViewPager,Pull2RefreshListView,VerticalSeekbar,RandomLayout等都是自定义控件。项目经理问:那你说说View的绘制过程?我()答:View绘制是从根节点(Activity是DecorView)开始,他是一个自上

21、而下的过程。View的绘制经历三个过程:Measure、Layout、Draw。旁白:的老版本课程体系中有2天的自定义控件,在这两天课程中同学们能够学会SlideMenu,Pull2RefreshListView,优酷菜单等自定义控件,目前的课程又对自定义控制进行了加强,添加了多种QQ5.0新特性内容,当然难度其实也不小。项目经理问:ListView你们应该有用过吧?我()答:这个在我们的项目中应用的很多,其实在如今所有流行的App中,ListView都有一个大量的应用,说ListView是一个使用率高的控件都不为过。项目经理问:ListView的优化你们是怎么做的?我()答:ListView

22、的优化有多种多样的策略。在我们的项目中主要做了如下优化。1、重用ConvertView,2、给ConvertView绑定ViewHolder,3、分页加载数据,4、使用缓存。前两个是通用的解决方案,后两个是针对我们业务的个性化解决方案。我们的数据来自服务端,如果服务端有1000条数据的话,我们客户端不可能傻瓜式的一次性用ListView把这些数据全部加载进来,因此我们就用分页加载数据,每次加载20页,当用户请求更多的时候再获取更多数据,网络的访问就算网速再快也多多少少会有一定的延迟,因此我们的网络请求是异步处理的,同时从网络加载来的数据使用了2级缓存来处理,第一级是内存级别的缓存,第二级是本地

23、文件的缓存。当ListView加载数据的时候首先从内存中找,如果找不到再去本地文件中找,只有都找不到的情况下才去请求网络。旁白:ListView的优化是课程一个重要的知识点,因此大家上课的时候这个必须得学会,不然在以后的面试中肯定会栽跟头的。第二轮PK CTO(非人类)技术面试问答精选旁白:第二轮技术复试是在第二天晚上7点时开始的,当时,我刚从外面面试完回到家中。跟我聊的是他们公司的CTO,通过聊天也能感受到他的技术非同寻常,前几个问题问我时感觉多方有种咄咄逼人的气势(貌似面试的人太多了,对于被面试人员都是不屑的口气)。不过几轮技术PK后,发现原来CTO对人类也可以这么温柔和气的(尼玛,技术好

24、才能被人看得起啊!心底话!)。CTO问:说说你对泛型的了解?我()答:泛型是jdk5.0版本出来的新特性,他的引入主要有两个好处,一是提高了数据类型的安全性,可以将运行时异常提高到编译时期,比如ArrayList类就是一个支持泛型的类,这样我们给ArrayList声明成什么泛型,那么他只能添加什么类型的数据。第二,也是我个人认为意义远远大于第一个的就是他实现了我们代码的抽取,大大简化了代码的抽取,提高了开发效率。比如我们对数据的操作,如果我们有Person、Department、Device三个实体,每个实体都对应数据库中的一张表,每个实体都有增删改查方法,这些方法基本都是通用的,因此我们可以

25、抽取出一个BaseDao,里面提供CRUD方法,这样我们操作谁只需要将我之前提到的三个类作为泛型值传递进去就OK了。而数据的安全性,其实程序员本身通过主观意识是完全可以避免的,何况某些情况下,我们还真的想在ArrayList中既添加String类型的数据又添加Integer类型的数据。CTO问:你知道Java的继承机制吗?我()答:知道呀,这个问题很简单呀!java是单继承多实现呀。CTO问:那你知道java为何这样设计吗?旁白:从上面的问题也可以看出越是资历老的程序猿越喜欢刨根问底,因此如果同学们面试的时候遇到一个年龄稍微大点的程序员,那么一定要提前做好思想准备了,他可能先问你一个看似很简单

26、的问题,然后再追问一个很深的思想或者原理。我()答:为何Java这样设计,其实这也是我一直的一个小疑惑。不过我是这样理解的。我只能用反证法,如果一个类继承了类A和类B,A和B都有一个C方法,那么当我们用这个子类对象调用C方法的时候,jvm就晕了,因为他不能确定你到底是调用A类的C方法还是调用了B类的C方法。而多实现就不会出现这样的问题,假设A和B都是接口,都有C方法,那么问题就能解决了,因为接口里的方法仅仅是个方法的声明,并没有实现,子类实现了A和B接口只需要实现一个C方法就OK了,这样调用子类的C方法时,Java不至于神志不清。从另外一个方面考虑的话应该就是Java是严格的面向对象思想的语言

27、,一个孩子只能有一个亲爸爸。CTO问:Java的异常体系你知道吗?我()答:知道呀,顶层是Throwable接口,往下分了两大类,一个RunntimeException另一个是普通的Exception。CTO问:那你知道这两类异常的区别吗?我()答:当然知道,java的命名是见名知意的。从名字上我们也知道RunntimeException就是运行时异常,在运行的时候才能被jvm发现导致程序的终止,而普通Exception必须进行try、catch处理,或者在方法上用throws声明。CTO问:那你的期望薪资是多少?我()答:我期望的薪资已经给贵公司人事说过了,是17k。CTO问:你这么年轻,就

28、想要到17k呀!我()问:对的,我是还年轻,高中同样是学习3年,有的考上了重点大学,有的却只考上了个大专院校,甚至落榜,不同的人学习能力是完全不一样的,甚至可以用天壤之别来形容,因此如果只简单的用时间来衡量一个人的价值显然就是不太合理的,比尔盖茨跟我这样大年龄的时候已经是亿万富翁了,而我还在找17、18k薪水的工作(前面的问题已经回答的这么漂亮了,谈薪水的时候一定要表现出绝对的自信!)。CTO问:你说的对,不过我还得问你几个问题,你说你们项目中有用到图片吗?我()答:这个当然有呀,我们新闻客户端基本上每条新闻都有图片,只有图文并茂的新闻才会有人看。CTO问:那你说你们遇到OOM异常吗?我()说

29、:这个前期的时候我们的APP确实遇到过这样的问题,不过现在新的版本早就吧这些问题给解决了。CTO问:那你们是怎么解决的?我()答:OOM异常是Android中经常遇到的一个问题,程序员稍微不注意可能就导致其产生。因为Android的每一个应用都是一个Davlik虚拟机,该虚拟机的默认堆内存只有16M,远远无法跟我们的PC机比较,因此和容易导致OOM(OutOfMemory)异常的产生。导致这样的异常主要有以下原因:1、加载大图片或数量过多的图片,因为图片是超级耗内存的,2、操作数据库的时候Cursor忘记关闭,3、资源未释放,比如io流,file等,4、内存泄露。我们用用的OOM主要是加载图片

30、导致的。因为后面的三种原因都是可以通过约束程序员的编码规范来进行预防,或者使用性能分析工具来检查。CTO问:好的,那你们的图片是怎么处理的?旁白:随后这就是CTO面试应聘者的一个习惯,他会追着一个知识点往死里问,直到问到系统的底层,或者他能理解的底。我()答:图片的处理主要用两种方式。我们的应用中有两处用到了图片,一个是ListView中展示的图片缩略图,这种情况的特点是数量大,但是单个图片内存小,只有几kb,另外一种是大图片,就是用户通过手机拍摄的图片,然后通过http的post提交的方式提交到服务器上。然后在客户端将这个大图片也展示出来。对于第一种情形,我们是通过三种技术手段来解决问题的,

31、一是图片的缓存策略,二是ListView的优化,其实在上面我已经讲过,三是WeakRefrence(弱引用)的使用。对于第二种情形,我们主要是首先通过BitmapFactory.Options参数获取图片的宽和高,然后再根据我们ImageView的宽高对图片进行一个很大比例压缩。CTO问:那你说说弱引用是怎么使用的?我()答:WeakRefrence是一个类,在ArrayList中我们把这个类作为对象传递进去,把我们的图片放在WeakRefrence里面,这样当davlik虚拟机内存不够用的时候,就会把WeakRefrence对象回收掉,这样我们在WeakRefrence里面保存的数据也被回收了。面试吐槽:在上海的第二面终于遇到懂技术的人,把笔试、技术一面、人事、技术二面一气呵成的通了个关,不拖泥带水,最终人事给了基本薪资17k+1k多补助的offer,这种感觉也许只有你经历过了才能体会吧!相信学子经过四个月的刻苦磨练也能远远超过我的水平。加油吧,骚年们!面试结果:顺利拿下Android工程师,15K offer+1k住房补贴

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1