首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一名程序媛的高级Android面试总结

一名程序媛的高级Android面试总结

作者头像
Android技术干货分享
发布2019-09-25 11:04:55
1.3K0
发布2019-09-25 11:04:55
举报
文章被收录于专栏:Android技术分享Android技术分享

金九十银面试季,相信大家都想好好把握住这次机会拿到心仪的offer,今天就给大家分享一位程序媛她的面试经历及总结,文章最后我还会分享一些自己的面试经验还有面试宝典,希望对程序媛们和程序猿们都能有所帮助~

现在的市场环境确实不大好,裁员与及在预谋裁员的公司一大把,当然招人的公司也有。楼主这几天去面试了几家公司,目的有以下几点:

1、跟现在老东家签约的合同快到期了,想出来看看新机会,有好机会就考虑挪挪窝了;

2、现在外面的市场是个什么样子,求职的人和招聘的人比例;

3、市场对于一个高级/资深开发工程师的要求是什么样子(毕竟纸上得来终觉浅,觉知此事须躬行);

4、年龄到底是不是个坎。

获取面试机会的渠道

楼主从3月初开始先在北邮人论坛(自己北邮毕业的,倾向于学校论坛)上看社招版块,投了五家,有两家约面了。之后在Boss直聘网和猎聘网上填写信息,上传自己做好的简历附件。周六刚填完,就有不少猎头打电话,管我要简历,加微信号,然后自报家门有哪些公司可以内推的,一开始没经验,想着猎头能推荐,就让他们内推呗。结果后来发现联系的猎头都快要把自己手机打爆了,而且路数都一样,都是那么几家公司帮忙推荐。周一赶紧把猎聘网上的简历撤下来了,给我的感觉就是猎聘网上几乎全是猎头吧,而且后面发现通过猎头推荐的能去面试的公司几乎没有,可能帮忙递了20家,能有2家约面就不错,而且还不是应聘公司跟面试的人单约,是猎头两边约,这样面试时间可能得来回改,可能猎头生怕跳单吧。猎头会在面试前一天各种提醒你明天要面试啊,带简历啊,当天又问你出没出发啊,提醒你面完了给他们打电话呀,有时没面完就开始给你打电话,发微信,询问面试情况怎样。可能生怕跳单了?反正联系得太频繁了,搞得我现在对猎头很反感,其实他们跟房屋中介一样,如果你让告诉中介要租房或是买房,他们一段时间内会不停得给你发消息打电话,约你出来看房子。通过猎头找工作肯定有一定的成功率,但我是不想再通过猎头找工作了。

再说说Boss直聘吧,这上面就清爽多了,很多公司直接把招聘职位、要求、公司简介、员工待遇、岗位薪水等写清楚了,他们可以在上面搜寻应聘者的简历,有意向的直接约面了。应聘者也可以看看各家公司的应聘职位,自递简历,自报家门,如果对方有意向,直接约面。我大部分面试机会都是从这上面获取的。如果是猎头在这上面联系我,我一般都直接略过了。

下面说说自己面试了几家公司遇到的一些面试题目吧,感觉无论自己怎么准备,好像永远达不到面试官满意的程度,或者说自己总有很多不会的,稍微一问深了,就不会了,这也怪自己技术栈深度不够、广度不够,没面过,没经验。而且各个面试官真是看心情,路数完全不一样,有的只问java特别特别基础的知识,比如面向对象的设计原则、比如char占几个字节,能不能存中文。。。有的问android性能优化,有的只考算法,有的可能来个脑筋急转弯。不过这也激励自己要努力,不能再每天无所事事的,做完公司那点活了,不去主动更新自己,也知道自己到底有几斤几两了,当别人问自己的职业规划时,自己也思索着,以后到底想发展成什么样。

面试题目

一个创业公司

(发现问下来几乎全是java基础知识,几乎没有android知识)

先是笔试:

  1. 生产者消费者模型用线程方式实现、按元素大小拼接两个链表
  2. 同步异步的区别
  3. 阻塞非阻塞的区别
  4. 泛型擦除
  5. 集合中线程安全的类和非线程安全的类(SparseArray和ListArray的区别,SparseArray怎么存数据、取数据)
  6. Gradle插件怎么做
  7. https怎么实现防抓包
  8. 封装第三方库等等;
一个五六百人的民企
  1. 线程池
  2. 消息推送(自己做一个消息推送怎么实现)
  3. Exoplayer相对于系统的MediaPlayer有什么优点
  4. h5面面加载缓存,和原生怎么传递数据
  5. MQTT和XMPP有什么区别,为什么会有那么多协议
  6. https的原理,中间人攻击
  7. 怎么中断一个线程
大厂

(多家公司面试题汇总,一些我认为的简单或是常规问题就不罗列了,全是我自己之前没怎么关注的问题,所以有时第三方库烂大街的原码分析要看,但有些关键点,其实很多博文可能都没分析到,需要自己多想想,自己主动去思考)

  1. AsyncTask原理,在子线程中定义AsyncTask实例可不可以,为什么不可以呢
  2. OkHttp原理(说了那些拦截器)怎么实现多路复用的(这个主要从https实现多路复用的原理上谈,用了二进制分帧,那okHttp其实就是按分帧来读取,具体可以自己看看相关博客)
  3. Handler的机制,android内部是怎么实现发送延时消息,(一开始以为是用个类似于Timer之类的定时任务,后来才知道是用系统开机时间+延时时间得到一个时间T1,当手机当前时间到了T1的话,就会把消息发送出去。但有可能UI线程被阻塞了,所以到了T1时间,也不能确保100%这个Message被发出去的)
  4. 性能优化减少apk体积,怎么减小so包的体积呢
  5. 怎么给一个应用加固
  6. ANR的原理,怎么从trace.log中找到ANR的原因及出现的地方(找到main thread),如果只是在主线程中Thread.sleep(10S),会不会出现ANR
  7. JNI层的Crash怎么定位(通过ndk中相应的工具addr2line ndk-stack等可以定位到行)
  8. 广播为什么能作为四大组件,有什么特殊之处(经面试官提醒,能实现一对多通信),本地广播的实现原理
  9. Android中设计Fragment的好处,那有了Activity为什么还要设计出Fragment来呢(解耦)
  10. ViewStub为什么能实现延迟加载(它没有进行测量和绘制,只在调flate或是setVisibility时才会加载进布局)
  11. Binder怎么实现进程间通信的,怎么注册服务的。。。。

。。。。还有很多题,就不一一举例了,只能说给自己一个教训,很多东西看深点就不会多问一点就不知道了。

创业公司想招团队负责人

做过哪些性能优化,Leakcanery的原理,怎么检测内存泄漏的

android的新技术你用了哪些

你认为你应用中做得比较nb的地方有哪些,你认为你项目中解决了哪些技术难点等等。。。

我认为反常规的面试

1)直接拿着我做的公司某个应用开始一通批判,觉得我自己对自己做的应用都不负责任,还有什么理由来应聘你,问你认为你最善长做的是什么,比如UI、功能、性能优化等,你要说UI吧,你这UI做得怎么怎么的,你要说性能吧,应用性能也确实一般般,让我觉得我没有啥善长的。回来老公说我们公司害了我,因为我现在的公司做的应用要求太低了,能用就行。但是别人对我要求松,我得对自己严要求、高标准〜〜〜〜

2)上来弄个类似于脑筋急转弯的题

Set<Short> stack = new HashSet<>();
for(Short i = 0; i < 100; i++) {
    stack.add(i);
    stack.remove(i-1);
}
System.out.println(stack.size());());

我以为会抛异常,面试官问要是不抛,又会输出什么,我想着输出1呢。后来自己下来试验了一把,发现输出100,让我百思不得其解。后来百度搜索,经别人提点才知道因为i-1这里用到了隐式类型转换i-1会转成int型的减法,所以在remove时,根本没有那个对象,所以无论怎么调stack.remove(i-1)都不会有元素移出,我不得不感叹面试官设计的陷阱。后面又问了两个矩阵传送门问题,应该有取巧的办法,可能我脑子真是太笨了,最终也没有想出来。

面试感言

自己的总体感受是:现在市场大环境不好,各大互联网招人的部门都是些边缘部门或是新设部门,有些甚至是光杆司令或是完全全新的部门,从0个人开始招,先招团队负责人等。现在市场是供过于求,有不少被公司裁掉的员工,在这个节点找工作,导致楼主去面试,面试官一上来就问你现在是离职态还是在职。如果自己不够优秀,面试官有很多选择,是不愿意付高价来招聘你的,按道理什么时候都这样吧,只是现在有点过了。市场供过于求,应聘公司有得挑,不够优秀,可有可无的人,一般会倾向于压低工资。

通过这轮面试,让我知道了自己的差距,自己的研究的东西太浅薄了,而且没有自己的优势或者说专长。而且自己作为一个女程序员,发现HR面时很吃亏,HR好像提前给你考虑了各种因素,结婚了是吧,有没有小孩,有小孩你得照顾小孩吧,我们这里很忙的。即使你再想证明自己,工作方面不会受影响,但他们还是不想冒这个险,就像我当年校招找工作,去自己老家某银行面试,省行不要女生,可以去自己家里的分行。因为你要结婚,要生孩子,要休产假,要照顾家庭。我什么都没说呢,就把我给否完了,给我先下个定义,难不成想让女程序员都不要结婚不生娃么,你也有媳妇啊。

总的来说,自己劣势挺明显的,没有在某方面有很深研究,没有什么优势,知识面的广度和深度都不够,这方面要加强,同时作为一个有娃的女程序员,已经被别人否掉了50%了,所以必须从技术方面加强吧。

工作我还会继续找,人都是追求上进的,有好机会还是会考虑挪窝的。我不想在我30岁就干一份可以养老的工作,技术我也会努力去提升,愿我和大家都会有一个更好的未来。

说说最近Android的行情

最近时不时看到一些风凉话,动不动就说Android凉了,给大家几个建议哈,首先要耐得住寂寞,不要被外界所干扰;其次要制定长期系统的学习计划并持之以恒;最后,注意学习方式,不要休闲式学习,很多人只看书看博客,但是从来不去动手实践一下,那理解肯定不会太深刻,时间久了就容易忘。

最后

面试:如果不准备充分的面试,完全是浪费时间,更是对自己的不负责!

如果想变得优秀那就去看那些优秀的人在学什么,做什么,想尽一切办法和他们交流;多出去看看这个世界,然后把自己逼到往死里学。

不管怎么样,不论是什么样的大小面试,要想不被面试官虐的不要不要的,只有刷爆面试题题做好全面的准备,当然除了这个还需要在平时把自己的基础打扎实,这样不论面试官怎么样一个知识点里往死里凿,你也能应付如流啊~

如何才能让我们在面试中对答如流呢?

答案当然是平时在工作或者学习中多提升自身实力的啦,那如何才能正确的学习,有方向的学习呢?有没有免费资料可以借鉴?为此我整理了一份Android学习资料路线:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.09.23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 获取面试机会的渠道
  • 面试题目
    • 一个创业公司
      • 一个五六百人的民企
        • 大厂
          • 创业公司想招团队负责人
            • 我认为反常规的面试
            • 面试感言
            • 说说最近Android的行情
            • 最后
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档