字节跳动 Android校招 三面回馈社会(Offer)

准备面试的时候刷了很多面经,这里也把自己的分享下,做个回报好了,顺便攒攒人品,一到这种时候人就迷信起来了。

一面

面我的面试官是做 iOS 的,就没问我 Android 的。

  1. ipv6 答不上来
  2. http 状态码
  3. http 请求
  4. https 请求过程
  5. 传送大图到服务器,进度功能实现: 这里扯了很多,一开始我理解成断点续传了,后面就是给的方案是 http 每次传一部分,根据状态码是否成功来处理,后面面试官觉得这个答案不行,让我从 TCP UDP Socket 这些角度去想,我说这些实现起来就更简单了,比如TCP就双向通信之类的。。
  6. gc
  7. 数据库索引,b tree b+ tree
  8. 设计模式
  9. 进程间通信,我说了几个,面试官说可以说 Android 的,好得!
  10. 算法: 字符串匹配,返回对应 index, 我用的 HashMap 实现。

大多数都是问的网络,网络不是我擅长的领域,有些别的想不起了。。。

不止是题目,面试官会深入进去怼的,别问我怼啥,被怼的忘光了都!

面试官人很好,还强调了他低头是写面试评价。。。

二面

面试官依旧很 OK,可惜网络状态不佳。

面试官:我看上一面问了你网络层面比较多的问题,那我接着问了
我:。。。好。
先自我介绍

  1. Http1.1 和 Http 1.0 区别
  2. keepalive 作用
  3. keepalive 底层实现,这块我是不清楚的,我就猜测了下给了他一个答案。
  4. 操作系统怎么在堆上和栈上分配内存,我不太清楚,就说了 Java 虚拟机是咋分配的,结果问了我 Java 虚拟机是咋在操作系统上分配的,对不起我不知道!(后面强调了 c 的 api,我还是母鸡啊!)
  5. 操作系统进程和线程
  6. 虚拟内存
  7. 虚拟内存的缓存,我不清楚,依旧给了个猜测
  8. 手写单例,写了双重检索的,后面问我有别的吗,我说了静态内部类实现的,问我为啥静态内部类安全。
  9. Android Framework,我问是 AMS 那些的吗,面试官说那太复杂了,你说下 handler , loop吧,然后问了一些相关的问题。(感动啊)
  10. 广播和本地广播的区别,实现原理
  11. 你用 map 写个 lru 吧,我说能用 LinkedHashMap 吗,不能, 后面我说了个思路,面试官觉得不行,然后说了 LruCache 怎么实现的, LinkedHashMap 怎么实现的,我说 LinkedHashMap 是用了 HashMap,在里面维护了一个双向链表,每次访问数据的时候修改链表。后面我就打算仿写一个 LinkedHashMap 来实现,多亏面试官即使打断,这个太费时间了,就不用写了。
  12. 手写生产者消费者,这里面试官一边看代码一边提问题,我跟着问题修改代码,其实就是把一个比较low 的生产者消费者优化成了面试官想要的样子(面试官在这里终于笑了)。
  13. 问问题环节
    Q:我想了解下相关的业务
    A:这个职位是最后统一定的,我不能告诉你
    Q: 问评价
    A: 还是不能告诉你。

over

最后问问题环节牛客网这边网络好像不通畅,我就听到了不可以告诉你。。。

同样大致问题是这些,其他的也想不起来了,这块网络操作系统混合双打。

面试官人很棒,会诱导你慢慢回答,而且考虑很周到。

补充

好像还有个 rxjava 的问题,这里补充下

一面问我 rxjava,我说我之前封装过一个 rxbus,来实现消息总线,后面我是说了下消息总线对代码的影响还是比较大的,我到后面是尽量避免这样的操作。

二面问我,一面评价说你觉得 rxjava 并不好,我赶紧说不是不行,rxbus 只是 rxjava 功能的一小部分,而是消息总线这样的方案有利有弊。

后面说rxbus 具体封装 ,太久远了想不起来了,然后说了 rxjava 其他的用法和优点这一类的。

后来问我不用消息总线怎么实现通信,我说了可以用原生的方式 startActivityForResult 之类的。

跨Activity怎么办?

所以我说消息总线这些有利有弊,应该在设计上尽量避免这样的操作。

三面

  1. 自我介绍,介绍了自己实习写的刷新加载的组件
  2. 问我自己组件里怎么解决的嵌套滑动冲突,三个方面实现完美分发事件
  3. 说 retrofit 动态***这块
  4. retrofit 动态***里面如果传的不是 interface 怎么办,这块我不清楚,我就直接说不太清楚,然后说了 retrofit 关于注解的处理
  5. 注解生命周期,编译时注解解析
  6. 你用过 weex,说下weex实现原理,我说我没有看过 weex 源码,但是我实现过一个动态页面渲染框架,说了下我的渲染过程和实现方案。
  7. 最近想学的技术,说了音视频,但是因为准备春招放下了
  8. 为什么想学,说了自己之前做一个 APP,里面播放器无法使用没认证的 Https 请求,打算自定义一个播放器,在底层处理证书这块,然后在说了下不知道这样的方案可不可行。
  9. 使用 https 请求这个不难的, 我说因为我这个是自己签的,就没法认证。
  10. 那你 okhttp 里面怎么认证的, 说了拦截器
  11. 还有个 ConcurrentHashMap 同步方案, 然后问了 CAS
  12. 环状链表
  13. TCP握手挥手

问问题环节

跟二面一样的问题,顺便问了下今年的怎么招聘的,凉面太多看的我很慌张。

一二三面问题可能搞混,顺序有些打乱,有些问题可能记不清了,三面面试官依然棒,虽然问题节奏很快,但是问题都很棒。

健忘症想起来可能还问了这些(记不起来第几面的了,大部分在第二面吧

  1. 锁, synchronized 和 ReenTrantLock
  2. 抢占式锁和非抢占式锁,ReenTrantLock 怎么实现非抢占式
  3. notify 和 sleep 区别
  4. onTouch 和 onClick (这个我隐约中好像被问过
  5. 注解处理器,这个我二面三面都有扯到,因为自己实现过动态路由的简单功能
  6. cookie 和 session 记得没答好这个

两星期后收到了offer,终于赶在毕业前上岸了

#字节跳动##面经##校招##春招##安卓工程师#
全部评论
请问是哪里的岗位呀
点赞 回复
分享
发布于 2019-03-30 18:02
QAQ好厉害
点赞 回复
分享
发布于 2019-03-30 19:21
百信银行
校招火热招聘中
官网直投
回馈社会海星🤣
点赞 回复
分享
发布于 2019-03-30 20:32
好强,感觉我啥都不会😂
点赞 回复
分享
发布于 2019-03-31 08:50
好像没咋撕算法
点赞 回复
分享
发布于 2019-03-31 09:04
加油,好运!
点赞 回复
分享
发布于 2019-04-01 13:52
动态***那个是不是问的其他的实现方式呢,像cglib这种基于继承的
点赞 回复
分享
发布于 2019-04-01 14:20
楼主有收到消息嘛
点赞 回复
分享
发布于 2019-04-02 15:51
哭了,感觉好难,20号要面安卓了
点赞 回复
分享
发布于 2019-04-17 23:38

相关推荐

点赞 40 评论
分享
牛客网
牛客企业服务