【社招】字节跳动 Android 开发岗面经(已凉)
1 面 1h 多(具体多了多少分钟忘了)
1.算法题 两个栈实现队列
2.算法题 输入一个数组,想一种方法让这个数组尽可能的乱序,保证功能能实现的情况下时间复杂度和空间复杂度尽可能的小,可使用随机数函数。(面试官最后说了 O(n)的时间复杂度能实现)
3.写一个单例(自己写一种就行)
4.ActivityA -> Activity B -> Activity A
Activity A 启动模式为 singleTask
Activity B 启动模式为常规模式
问 A 启动 B,B 又启动 A 的生命周期调用顺序?
5.你刚才提到 onsaveinstancestate() ,说一下调用时机,它用来干什么的。
6.onsaveinstancestate() 保存的那个参数叫什么?Bundle 里面都放一些什么东西?怎么实现序列化?Parcelable 和 Serializable 有什么区别?
Bundle 。
7.数组和链表的区别
8.HashMap 的结构以及原理
9.我看你简历上写了 retrofit,你能说一下它是做什么的,如果知道基本框架也说一下
10.了解 View 的绘制机制吗,能说一下吗
11.我看你项目里用的 Fragment 能说一下 Fragment A 启动了 Fragment B,Fragment B 中按下返回键只退出 Fragment B 怎么实现。
12.你还有什么要问的吗?
2 面 1h 多(具体多了多少分钟也忘了,加起来 2.5 小时的样子)
1.算法题 一个字符串,求最长没有重复字符的字符串长度
2.string stringbuffer 和 stringbuilder 区别
3.final finally finalize区别
4.数组和链表的区别
5.HashMap 了解过吗
6.Tcp 三次握手四次挥手 https://www.zhihu.com/question/24853633,那种拿着打电话类似的答案就不要看了,那些高赞我感觉讲得很好,从原理上讲就印象深刻。
7.get 与 post 的区别
https://www.zhihu.com/question/28586791,大宽宽答主讲的很好,就是有点深奥,记一下 “浏览器的 GET 和 POST”、“接口中的 GET 和 POST” 就行。
8.synchronized 的作用
9.你知道哪些设计模式
10.Android 进程通信的方法
11.那你能说一下 Intent 是怎么进程通信的
12.内存泄漏有哪几种情况
13.有什么要问的吗
#字节跳动##面经##安卓工程师##社招#