前言

一个Android开发的朋友跟我谈他面试经历,上周去爱奇艺面试,其他问题都答得不错,面试官问了一个哈夫曼算法的题没答出来,后来面试官很明确的说,我们还是想找一个会些算法基础的。

如果之前有学过数据结构和算法,建议大家不定时的去刷刷算法题

因为从面试的角度来讲,目前 BAT 和 TMD 等一线互联网企业或多或少都会有几个算法题,而对应届毕业生来说,算法的要求度则更高!这里可以分享一下我收集整理的数据结构算法题含答案。

面试题目

1.一个创业公司

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

先是笔试:

  • 生产者消费者模型用线程方式实现、按元素大小拼接两个链表
  • 同步和异步的区别
  • 阻塞和非阻塞的区别
  • 泛型擦除
  • 集合中线程安全的类和非线程安全的类(SparseArray和ListArray的区别,SparseArray怎么存数据、取数据)
  • Gradle插件怎么做
  • https怎么实现防抓包
  • 封装第三方库等等;

2.一个五六百人的民企

  • 线程池
  • 消息推送(自己做一个消息推送怎么实现)
  • Exoplayer相对于系统的MediaPlayer有什么优点
  • h5面面加载缓存,和原生怎么传递数据
  • MQTT和XMPP有什么区别,为什么会有那么多协议
  • https的原理,中间人攻击
  • 怎么中断一个线程

3.大厂

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

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

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

4.创业公司想招团队负责人

  • 做过哪些性能优化,Leakcanery的原理,怎么检测内存泄漏的
  • android的新技术你用了哪些
  • 你认为你应用中做得比较nb的地方有哪些,你认为你项目中解决了哪些技术难点等等。。。

5.我认为反常规的面试

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学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

优秀开源项目:

  • ali1024.coding.net/public/P7/Android/git
  • github.com/android

最后

如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

最后针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!
动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!

android一年经验面试,连续四年百度Android岗必问面试题相关推荐

  1. Java面试题整理,连续四年百度Java岗必问面试题

    GC概述 垃圾收集(Garbage Collection)通常被称为"GC",由虚拟机"自动化"完成垃圾回收工作. 思考一个问题,既然GC会自动回收,开发人员为 ...

  2. 连续四年百度Android岗必问面试题!Android校招面试指南

    前言 刚从阿里面试回来,想和大家分享一些我的面试经验,以及面试题目. 这篇文章将会更加聚焦在面试前需要看哪些资料,一些面试技巧以及一些这次的面试考题. 面试经历 7月确定想走后开始看各种面经,复习基础 ...

  3. 万字攻略,详解腾讯面试(二,BAT等大厂必问技术面试题

    ===== 组员面试,不是100%必须的环节,然而有时候组长太忙,就会让组员先面试,探探路. 郭靖屁颠屁颠地到了腾讯,参加面试,遇到的就是组员面试,这个组员,一般是组内的骨干员工,职级通常是9级,很可 ...

  4. android应用程序架构由哪四个组成,android 应用程序结构是哪些

    src 目录 是源代码目录, 所有允许用户修改的 java 文件和用户自己添加的 java 文件都保存在这个目录中 是 1.5 版本新增的目录,用来保存 ADT 自动生成的 java 文件,例如 R. ...

  5. mq集群要建传输队列吗_面试官:消息队列这些我必问!

    作者:mousycoder segmentfault.com/a/1190000021054802 消息队列连环炮 项目里怎么样使用 MQ 的? 为什么要使用消息队列? 消息队列有什么优点和缺点? k ...

  6. 校招面试真题 | 面试官必问面试题之你有什么想问我的?

    面试必问问题:你有什么想问我的? 很多同学面试时遇到这个问题,尤其是刚刚去面试,绝对是一脸懵逼.很多同学心里想,是不是可以问一问能拿多少钱?好像我对于薪水这个问题,我也想不出来有啥问题能问了呀~ 如果 ...

  7. Android 面试(四):Android Service 你真的能应答自如了吗?

    本次我们没有采取分享公众号推文的方法,我想直接这样看看效果. 本文首发于微信公众号「nanchen」,你可以直接在公众号搜索「nanchen」或者扫描最下面的二维码关注我.做不完的开源,写不完的矫情, ...

  8. 3年测试经验面试,薪资要求19K,我一问,连应届生都不如···

    相信对于每一个求职者来说都有被面试的经历吧,曾经作为一位测试小白的我,每一次面试过后都会各种吐槽面试官的不是,吐槽HR人事的不足,以及自己的有点没有发挥出来,今天我终于体会了一次面试官的心情- 起因: ...

  9. Android技术篇!BAT等大厂必问技术面试题,吊打面试官系列!

    背景 首先我是个菜鸡,工资也低的一笔. 刚毕业时候在一家国企上班干 app 开发,干了快两年的时候,跳槽到了一家伪大厂干安全.投了不少简历都没有回音,只有这加伪大厂要我就来了.当时说好了会接触一些底层 ...

最新文章

  1. llvm常见问题 (FAQ)
  2. 如何用Java类配置Spring MVC(不通过web.xml和XML方式)
  3. Redis M/S + Keepalived 主从备份高可用
  4. Vue中使用Openlayers加载Geoserver发布的ImageWMS
  5. 使用HttpHandler解析并展示PDF文档内容
  6. python相关背景及语言特点
  7. 网页版的svn怎样同步代码_学会使用Hdlbits网页版Verilog代码仿真验证平台
  8. 搜索算法-三个简单的小问题
  9. 片段中的findViewById
  10. python 设计模式 原型模式_【设计模式】——原型模式VS模板方法模式
  11. eplan图纸怎么发给别人_如何保护你的EPLAN图纸
  12. 【行业案例分析】3C数码行业B2B供应链平台开发案例
  13. task5b-验证lncRNA只有部分具有polyA尾结构
  14. 网页计算机谈音乐,如何用windows电脑录制网页上或电脑中自己的音乐
  15. 基础矩阵和极点、极线关系
  16. bzoj2121 字符串游戏
  17. pycharm编辑器如何用鼠标滚轮随时放大缩小代码
  18. 研发侧利器!k3d+k3s,轻松管理本地k3s集群!
  19. [附源码]计算机毕业设计Python+uniapp基于Android的校园考勤APPo0400(程序+源码+LW+远程部署)
  20. visio的vsd文件转eps图流程

热门文章

  1. [linux kernel] 内核下ksz8081驱动调试
  2. 模型的“参数”与“超参数”
  3. 你选择双休还是单休?
  4. OpenCV/C++ 图片锐化
  5. 2021-09-24 网安实验-图像隐写-StegSolve之Frame Browser
  6. 【android studio】 the logging tag can be at most 23 characters
  7. 熔断器熔断时间标准_快速熔断器型号_快速熔断器熔断时间_快速熔断器
  8. 从简易的json中提取数据
  9. CF577B Modulo Sum(dp,抽屉原理 | bitset优化 | 二进制优化)
  10. 程序员离职的3个大忌!