hcily / InterviewExperience

炎枭的面经

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

炎枭的面经-InterviewExperience(Android高级开发)

面试准备:

自我介绍,系统的说明经历过的项目,为什么离职

自我发展规划:不断突破自我,在技术上以及与人的沟通能力上往更高的层次上发展。

团队的技术氛围很重要,在有很好的业务支撑的环境下,大家为了提出某个实际问题的解决方案,相互之间会进行交流学习。在没有很好的业务支撑的环境下,大家可以一起互相探讨现有技术的优化点,调研新的技术,互相分享学习心得。

知识梳理:

https://juejin.im/post/587dbaf9570c3522010e400e?utm_source=wechat

https://github.com/LRH1993/android_interview

学习资料:

https://blog.csdn.net/mwq384807683/article/details/70795881

技术架构

https://github.com/davideuler/architecture.of.internet-product



陌陌—架构组

数据库:怎样快速插入1万条数据,看过GreenDao的源码吗

加快数据库存储 一次插入多条,显示开启事务,关闭读、写同步,执行准备(类似存储过程,Stored Procedure),索引 https://blog.csdn.net/majiakun1/article/details/46607163

GreenDao https://blog.csdn.net/zhangjiaofa/article/details/49134341 提供的功能:加密,RxJava1,升级,注解(生成dao),异步封装(操作合并,减少事务的开关), 锁(IdentityScope)? CursorWindow ? 速度快的原因:Transaction(事务),对SQLiteStatement进行缓存

对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping)

图片框架:Universal ImageLoader(看过源码吗)、glide(为什么用它,好处在哪里)、fresco

UIL源码解析:下载进度、缓存策略、下载、显示、线程池 https://blog.csdn.net/maplejaw_/article/details/51684130

HashMap : https://blog.csdn.net/justloveyou_/article/details/62893086

LinkedHashMap : https://blog.csdn.net/justloveyou_/article/details/71713781

LruMemoryCache :

Glide源码: https://blog.csdn.net/yulyu/article/details/60331803

网络框架:volley(为什么不适用于大文件传输)、okhttp3(为什么用它,好在哪里,看过源码吗)

Volley:默认开启4个网络请求线程,返回的结果存储在内存中(大文件传输会长时间占用线程,并且可能由于内存占用过多导致OOM)

okhttp3 :https://yq.aliyun.com/articles/78104?t=t1 : https://blog.csdn.net/mwq384807683/article/details/71173442?locationNum=8&fps=1

okio:

https? http2? SPDY? https://zh.wikipedia.org/zh-cn/HTTPS https://zh.wikipedia.org/zh-cn/HTTP/2 https://zh.wikipedia.org/zh-cn/SPDY

如何实现请求的优先级(高德) Volley的请求队列:PriorityBlockingQueue :

okhttp的请求队列:SynchronousQueue :

如何定位一个不能复现的anr

traces.txt文件 https://www.jianshu.com/p/f406d535a8bc https://blog.csdn.net/jiangguangchao/article/details/54908477

BlockCanary源码: https://blog.csdn.net/bazhongren/article/details/51125113

LeakCanary 源码: https://blog.csdn.net/cloud_huan/article/details/53081120

Reference : https://www.cnblogs.com/jabnih/p/6580665.html ReferenceQueue : https://www.cnblogs.com/dreamroute/p/5029899.html

iTestin工具

同一张图片,放在hdpi、xhdpi中,分别占用的内存是多少

https://blog.csdn.net/guolin_blog/article/details/50727753

binder的通信机制?看过源码吗?
哪些情况造成内存泄漏,内存溢出怎么处理?
activity的生命周期是如何实现的?Fragment呢?(高德)

activity的生命周期: http://weishu.me/2016/03/21/understand-plugin-framework-activity-management/ https://blog.csdn.net/yangxi_pekin/article/details/19977429

Fragment的生命周期: https://blog.csdn.net/jxxfzgy/article/details/44773797

如何防止内存抖动(高德)???
如何防止MVP的P功能过多,怎么拆分???(高德)
如何判断是主线程(高德)

https://blog.csdn.net/clevergump/article/details/50995612

Git为什么能实现分布式管理(高德)
Rxjava的线程切换是如何实现的(高德)

https://blog.csdn.net/chenkai19920410/article/details/52515771

ThreadLocal的内部机制?
App安装、启动流程?
APK打包流程

https://juejin.im/entry/58b78d1b61ff4b006cd47e5b

Android deeplink内部实现机制?

http://blog.csdn.net/qq_27540131/article/details/74938234

Java线程,并发编程?

并发编程的优缺点:https://juejin.im/post/5ae6c3ef6fb9a07ab508ac85

线程状态转换:https://juejin.im/post/5ae6cf7a518825670960fcc2

锁? https://blog.csdn.net/zqz_zqz/article/details/70233767 https://blog.csdn.net/yanyan19880509/article/details/52345422 https://www.cnblogs.com/-new/p/7256297.html

Semaphore: https://blog.csdn.net/qq_19431333/article/details/70212663

抽象的队列式的同步器 AQS:https://www.cnblogs.com/daydaynobug/p/6752837.html

Exchanger的工作原理及实例:https://blog.csdn.net/carson0408/article/details/79477280 http://ifeve.com/concurrency-exchanger/

CountDownLatch解析 : https://blog.csdn.net/yanyan19880509/article/details/52349056

CyclicBarrier:https://www.jianshu.com/p/ccf218dfcfa6

classloader?https://blog.csdn.net/briblue/article/details/54973413

深入剖析volatile关键字 : https://www.cnblogs.com/dolphin0520/p/3920373.html http://www.iteye.com/topic/652440

彻底理解synchronized:https://juejin.im/post/5ae6dc04f265da0ba351d3ff

锁膨胀:https://www.cnblogs.com/dsj2016/p/5714921.html

Java内存模型?

https://blog.csdn.net/u012152619/article/details/46968883

https://blog.csdn.net/marvel__dead/article/details/69220153

类的加载过程

https://blog.csdn.net/eff666/article/details/52203406

方法区是线程安全的??

58

一面:

二面:

  • 看过哪些开源库,详细说一下图片加载库的设计模式

爱奇艺

笔试:

一面:

  • 框架设计,怎么去封装图片库,能用到什么设计模式;
  • 线程池实现原理(核心线程数,线程最大数):
  • SurfaceView和TextureView的区别:

(SurfaceView源码浅析) https://blog.csdn.net/luoshengyang/article/details/8661317/

https://www.cnblogs.com/wytiger/p/5693569.html

(对比) https://blog.csdn.net/hejjunlin/article/details/58582919

二面:优势是什么,缺点是什么,职业规划是什么,为什么离开现在的公司

优势:接受新事物的能力强,学习能力强,有责任心,能很快融入团队

缺点:有时候会钻一些牛角尖,比如有时候产品提出一个问题,我就会以技术的角度去思考这个问题到底能不能实现,但其实在很多时候证明,技术上不能实现的都可以归结为产品问题,重要的还是在产品端,前期的规划很重要,写代码,实施,只是产品研发其中的一个步骤。

职业规划:技术的深度和广度上需要提升,在工作之余了解些后台,前端的技术而不单单是移动端,这样在制定方案的时候能够考虑的更加周到,这是硬技能方面。同时还要在软实力方面有所提升,比如和同事的沟通、对产品的理解等方面,在这一方面,我希望自己在不久的将来能够带领一个团队,能更多的站在产品的角度去思考问题,而不单单是从技术角度,从而以一个更大的角度去看待问题。

为什么离开:

高级开发者和中级开发者的区别,

三面:

宝宝树

笔试:

https://blog.csdn.net/javazejian/article/details/52665164

: https://www.cnblogs.com/redcreen/articles/1955307.html

https://blog.csdn.net/caowenbin/article/details/6532217

一面:

阿里巴巴—大麦网

电话面试:

头条

头条-懂车帝

横向打印二叉树

合并两个有序链表

  • 架构:MVC、MVP、MVVM
  • 设计模式:开发中常用的设计模式

探探

  • 数组大小n+1,数组中数的范围是1-n,并且数组中有且仅有2个重复的数。 将这两个重复的数找出来。要求时间是O(n),空间是(1)。 如果在不改变数据本身的情况下呢?

美团打车

一面:

二面:

三面:

  • 了解OpenGL吗
  • SurfaceView的内部实现原理
  • 使用数组或者链表实现一个栈,写出具体的pop和push方法。要求:支持范型、线程安全。

HR:

  • 自己的优势是什么:良好的问题分析能力、能很快的融入团队、喜欢分享和交流技术
  • 为什么离开:公司战略调整、技术中心偏向上海
  • 今后的规划

360

一面

  • aidl的实现步骤
  • 视频播放边播边存的实现原理

二面

  • apk的启动流程
  • 插件化
  • ijkplayer的编解码

https://blog.csdn.net/xipiaoyouzi/article/details/74280170

HR

  • 为什么离职、规划

贝壳找房

一面(基础面)

二面(leader)

  • 内存泄露
  • 项目难点
  • 项目优化点

三面(移动部经理)

  • 如何优化一个已有项目,从那些方面去入手
  • 如何对多个已有项目进行优化
  • 自己的规划

四面(业务主管)

  • 规划
  • 为什么离职
  • 对于大平台的理解

HR

滴滴-顺风车

一面

  • 内存优化
  • 布局优化
  • 内存泄露

二面

  • ThreadLocal
  • 内存优化
  • Android中的动画
  • 按年龄排序几万个员工(时间是O(n),空间是O(1))

阿里用人标准:聪明、皮实、乐观、自省、谦卑

  • 聪明: 你的老板有没有不采纳你建议的时候? 他有没有和你交流为什么不采纳? 你接受他的理由吗? (聪明人,知进退,一定会问老板理由)

  • 皮实: 当你的老板当众批评你的时候,你是怎么想的? 是不是觉得他不够给面子,应该先和你私底下商量一下? (当众被批评,用好奇心面对所受到的批评和指责,这是皮实的最正能量的解释)

  • 乐观: 如果你没有被我们看中,会不会不爽? (如果回答,不会啊,没什么,说明不乐观,如果回答会有点失落,但是我会了解为什么,然后改进再来过)

  • 自省: 一年前,你的老板认为你的不足是什么? 当下,你的老板认为你的不足是什么? 你觉得你自己哪些方面不足,阻碍了你的晋升? (会自省的人,和自己的老板一定有很好的沟通,而且会得到他人的指点,尤其是自己的老板)

  • 谦卑: 一个工作年限比你少的人,轻而易举的解决了你的技术难题,你会如何去请教他? 如果你能够解决你的老板无法解决的问题,你会不会希望拿到和你的老板同样高的薪水? (弱于比自己年轻的人,不耻下问;强于比自己尊贵的人,更要虚怀若谷)

About

炎枭的面经