2021年 7 月 12 日 android 面试总结;

1,003 阅读4分钟

IHandy

  • 1: 电话面试
  • 2:上午 11 点开始,持续 37min
  • 3: 结果: 挂了 hr 给我的反馈:面试官说我路子野😂

说说 java 的GC

循环引用,我没说好;

mvvm 与 mvp 的区别

主要围绕 android 的 databinding 和 liveData 展开聊。

HashTable 线程是安全,怎么做到的?

  • 我回答:HashTable 比较直接,用了大量的 synchronzied 在方法上;
  • 再问: 然你做优化,怎么做?
  • 答: 仿照 concurrent 将锁的粒度细化,或者在一些函数上使用无锁编程CAS,并且最 CAS 做一些限定,比如 超时和自旋次数机制 ,当获取锁超过某个限定的时间,或者超过自旋次数,那就直接使用重量级锁,防止 cpu 使用率飙升;

sqlite 的实现安全的吗?

* 我回答:[不会](https://www.cnblogs.com/feng9exe/p/10682567.html)

http 与 https 的区别?

* 我回答: 只知道 https 的那个 s 指的是 SSL,https 的访问,是比较安全的 

sleep() 和 wait()

 * 有一个点回答错误:sleep()在睡眠时候,和没睡的时候是一样的,是释放 cpu 资源,不释放锁;
 * 有一个点不熟,没回答,sleepwait 中断
 

面试官:你有什么想问我的?

我了解到,面试官是做 java 后台开发的,就请教一个 IO 多路复用的问题,结果面试官说自己没研究过;

vivo

  • 1: 腾讯会议面试,2 个面试官(简称:甲-younger man,乙- old man)
  • 2:下午 3:30开始,持续 51min
  • 3: 结果:通过。经验和知识的掌握还可以,感觉是有所准备,问到很多知识,在理论上讲很多,问到实践经验或者实际处理,却又说不上来或讲不清楚。综合评估C1中上水平;

自我介绍

问学历

问:是本科,答:是本科(这点,有点讨厌..我都工作这么多年了..)

聊聊做的项目以及在中间担任的角色

gradle 依赖中 aar 文件重复,该怎么办?

exclude 用法

说一下Handler,sendxxx()和 postxxx(),哪个优先级高?

答:不知道,ps:我真没听过这2个函数的优先级是什么样的,底层调的不都是 sendMessageAt() 吗?

主线程中,handleA 调用 sendMessage(),handleB 调用 sendMessage(),然后在handleB 的 handleMessage()回调中会收到handleA发的消息吗?

说一说性能优化?

答:这个我回到的比较多,甲面试官听的有些懵逼

说说 leadkCanary 原理

说说你们的网络请求库是怎么封装的?

答:围绕 Retrofit okhttp,Gson,rxjava,来解答

在数据解析过程中,我有一种新的数据格式,比如有一种新的数据格式:xml,该怎么吧?

答:在 Retorfit 的数据转换器中添加 xml 解析相关解析器,比如 dom 解析;(这个回答的没啥底气,毕竟没做过,需要临场发挥)

rxjava 的操作符,你会那些,merge,concat,zip 的区别是什么?

操作符回到出来了,例如 map,flatMap,merge,但是 concat,zip没回答上来。

自定义 view 会吗,应该注意什么?

小菜一碟

自定义 view 中,想画一个圆形,怎么做?

答: 范围裁切;

retrofit ,okhttp,okio 的关系是什么?

小菜一碟

用过动画吗?

答:围绕 PropertyAnimation 和 ObjectAnimator 这两种动画来回答的;

乙:用过哪些动画库?比如:Lottie

答 没有

乙:你是怎么排查 ANR 的?

答:(回答这个问题 我想做个铺垫,聊聊 anr 是怎么产生的。),刚说出:埋炸弹,拆炸弹,引爆炸弹,面试官立马说:行,,我知道了,你说说怎么排查,我回答:通常在 root 的手机上直接查看 traces.txt 文件,

你怎么看待加班,你加班的强度是什么样的?

围绕“项目需要,可以加班,但是自己已经过了需要用加班来增加自己经验的年龄” 来回答;

乙:你有什么想问我的?

我问:字节和快手都取消了 996 ,你们vivo 什么时候取消啊? 面试官笑着回答:我们也在等待这个消息啊!

我再问:针对今天的面试,你们对我有什么建议的吗?从技术上聊聊,,你们都是大厂的人.

甲乙异口同声:没有;

---2 场面试,主要就是这些问题,零碎的就不记录了 --over

总结

  • 基础知识很重要,实践也很重要

  • 大厂,对性能优化的要求比较高,但是在面试的过程中,面试还是采用了一问一答的沟通方式,能感觉到 面试官对 systrace 和traceview 也不熟悉;我聊着一块内容的时候,他俩:有些目光呆滞!