Android 开发两年面试总结

痴心易碎 提交于 2020-12-04 10:09:07

面试时间:2020.11.19-2020.11.25
面试公司:6家
旺龙智能、小虎互联、尚游、小鹅通、编程猫、车保中服、旺龙智能

骑驴找马面试:2020.09.06-2020.11.13
到面:几米、来画、尚米、伊欧乐、ETEKCITY、木易炎黄、咸鱼游戏、私募排排、威富通、东风日产、创维、TCL
电面:百度、阿里、腾讯、网易

沟通软件:Boss直聘

面试方向:项目、java基础、android基础、网络

项目:

简历按时间顺序,从最新-最久,写清并说清自己负责的内容,细化到如何实现的,将整个流程烂熟在脑子里。
①:针对视频流项目的问题:

  1. 说一下一个视频的一个整体播放流程?
  2. 说一下它的编码和解码的采用的是?
  3. 播放的协议?
  4. ijkMedia 与 exoMedia 与android 原生的区别和联系?
  5. 怎么去看他的播放率?成功率?
  6. 怎么解决秒开?

② :针对手机与机顶盒局域网通信的项目的问题:

  1. TCP与UDP的区别?
  2. 为什么TCP是以流的方式传输?
  3. HTTPS的加解密方式以及三次握手、四次分手?对称加密及非对称加密 传输过程中采用的是那个密钥?
  4. 通信中采用的协议?
android:

基础:

  1. Handler的讲解?Looper与Handler的关系?一个线程多个Handler是如何进行目标发送和接收的?消息是如何进行插入和删除的?
  2. View的时间分发机制?横竖冲突、横横冲突?
  3. 了解的动画有哪些?属性动画?
  4. 进程间通信?详细讲解为什么android使用Binder进行通信?不用linux中现有的呢?
  5. 自定义View的过程?如何实现一个在view的内部添加padding?
  6. 启动模式?不同的activity如何设置启动存放的栈?用TaskAffinity设置
  7. fragment与activity的生命周期?
  8. webView如何进行交互?
  9. 数据库表变动,如何进行升级?
  10. 软键盘弹出,如何进行设置?
  11. shareferencee是线程安全的吗?commit与apply的区别?
  12. Json解析用的什么库?
  13. FragmentStatePager与FragmentPager的区别?
  14. Fragment会发生重叠的原因?

扩展:

  1. 框架:MVC、MVP、MVVM的区别?MVVM中的viewbinding
  2. Retrofit中的整体流程?动态代理与静态代理的区别?
  3. Glide框架的内部实现?
  4. RxJava的内部实现?zip?flatMap与map的区别?flatMap是有序的吗?如果有序,需要使用?concatMap 背压?熟悉一下各种操作符的用法 过滤、组合、辅助、条件、转换操作。它的订阅过程?变换过程?线程切换过程?
  5. OkhHttp的内部实现?
  6. TextView的源码有没有了解?
  7. 有没有了解jni? jni与arr的区别?

宽泛:

  1. 性能优化的几个方面?布局优化、绘制优化、内存优化、线程优化
  2. android不同版本的适配?4.4、5.0、6.0、7.0、8.0、9、10、11
  3. 如何定位so库中的问题?
  4. 如何定位崩溃问题?
  5. flutter?
  6. 代码管理工具?Git?SVN?他们的区别?
  7. 使用的内存泄漏工具?原理是什么?
  8. 打包的过程?签名?加固?怎么看自己的apk是否已经完成加固?
  9. gradle原理?简单语法?

附加题:

  1. 如何加载一张超大的图片?
  2. LRU的底层结构?实现原理?如何进行删除和插入?有哪些优化方案?
Java
  1. 线程锁有哪些方式?有什么区别?
  2. 线程池有那几种?如何使用?
  3. 假如有100个请求同时过来,需要怎样进行处理呢?
  4. ArrayList?LinkedList?HashMap?HashSet?
  5. 垃圾回收机制?什么样的对象是可回收对象?
  6. 四种引用及用途
  7. votaile 一个++i是否是原子性?
  8. 单例的双重锁检验机制是否安全?如何进行优化?
  9. 为什么进程间可以通信?内核共享 为什么线程间可以通信?内存共享
  10. java的继承、封装和多态?
  11. vector和List的区别?
网络
  1. TCP与UDP的区别?
  2. 为什么TCP是以流的方式传输?
  3. HTTPS的加解密方式以及三次握手、四次分手?对称加密及非对称加密 传输过程中采用的是那个密钥?
  4. Http请求及响应?请求头、请求行、请求体,其中都包括哪些内容?状态码?响应头、响应体?
  5. 从网站输入网址,到呈现网页的过程?
  6. TCP传输的特性?面向字节流、可靠传输、面向连接。如何保证可靠性的?校验和、序列号、确认应答、超时重传、连接管理、流量控制、拥塞控制。里面的详细做法?
  7. 什么是单播、多播、广播?
设计模式
  1. 装饰者和外观模式的区别?
  2. 中介者和代理模式的区别?
    注意它们是面向结构的?行为的?还是创建型 这样才能很好的知道是在类上添加接口?还是创建新的类去包装等等…
算法
  1. 常用的数据结构?栈、队列、树(二叉树、平衡二叉树、搜索二叉树)、图
  2. 手写二叉树反转
  3. 找到第K大元素
  4. 给定数字,在一个数字数组中,将数组内的所有数字随机分配+号和-号,最终得出给定数字
  5. 鸡蛋从n楼不会摔破,n+1楼会摔破,用最少的鸡蛋,找到它能摔破的最低楼层。
HR以周边问题
  1. 为什么离职?离职的原因?
  2. 优点及缺点?
  3. 在开发中遇到的比较难解决的问题?
  4. 目前学习的内容?
  5. 薪资?特别强调,现在有些工资要提供具体的工资流水,所以面试时说的工资,需要属实,不想因为多一些工资,面试时说的较为不符合,然后上网上找假的工资流水,我觉得比较不好,不诚实,不想为了那点工资,弄虚作假。
  6. 还有什么想问我的?这里需要根据不同面试官进行提问
    一面:通常是未来同事 问:目前招聘的岗位,主要想招聘具备哪些能力的人呢?做具体的哪些工作呢?开发的人员分配呢?
    二面:通常是项目组长,技术总监 问:您觉得公司给您带来的最大的价值是什么?您从公司最大的收获是什么?
    三面:CTO、主管、CEO 问:您最看重候选人身上具备的那些品质?
    四面:HR,薪资谈判,期望薪资,这个我没什么经验,按照给定的招聘标准 取中,这个要看个人能力,以及市场标准来开价。



  7. 对未来的规划?选择的行业?公司?
  8. 未来工作看重的几个地方?公司?位置?薪资?技术氛围?可以按照重要程度,列出三点。
  9. 平时的兴趣爱好,主要看重是否在业余时间,在捉摸新的技术?对自己的代码优化?是否有学习计划?
  10. 最受挫败的事儿?最值得骄傲的事儿?
  11. 未来三至五年的计划?

感觉毕业在一家公司,稳定工作两到三年,是一个比较被其他公司看好的员工,能够有很多的面试机会,然后就是把自己的基础打牢,并可以进行进一步的加深,体现平时学习的深度,就更容易获得offer,挺好的。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!