2020年抖音客户端提前批面经
写在前面
本人去年参加字节校招提前批,目前已入职字节TikTok-Android部门,欢迎各位来部门直推呀~
一面
- 手写单例模式,解释为什么要用双重校验?volatile关键字有什么用?知不知道为什么会有指令重排序?
- 线程安全怎么理解?volatile除了指令重排序还有什么用?对i++也有用吗?如何保证操作的原子性?
- http协议的请求报文和响应报文
- 死锁了解吗
- 介绍一下项目中的难点
- 算法题:给你一个二进制数组 nums ,你需要从中删掉一个元素。请你在删掉元素的结果数组中,返回最长的且只包含 1 的非空子数组的长度。如果不存在这样的子数组,请返回 0 。
二面
- 你实习部门在腾讯ieg感觉也不错,为什么要来抖音?
- http安全吗?介绍一下https加密?为什么要用对称加密和非对称加密结合?这样加密以后就能保证安全了吗?
- 场景题:http是有状态的吗?如果是无状态的,那下面这个场景怎么实现的,看淘宝直播添加了一个物品进购物车,然后再打开购物车页面,为什么能把上次添加的物品展示出来?这个主要考察cookie
- cookie和session分别说一下?怎么能实现本地缓存的cookie的安全?(定期清除,内容加密)
- http2.0加了些什么内容?
- c++了解吗?(不了解)介绍Java堆和栈
- Java的多态和继承
- 操作系统了解吗?介绍一下虚拟内存?分页机制的页表映射有哪些算法?操作系统的缓存策略
- 设计模式了解哪些?说说生产者消费者模式和它的应用场景
- 算法题:两个栈实现队列
- 算法题:以时间复杂度O(n)从长度为n的数组中找出同时满足下面两个条件的所有元素,1.该元素比放在它前面的所有元素都大 2.该元素比放在它后面的所有元素都小
三面
- 问项目,详细介绍一下文件管理这块?USB是直接用安卓系统的吗?知不知道怎么用命令行写?(这个没懂啥意思,直接说不知道了)BMP格式优缺点?bmp压缩算法有哪些?
- 问实习的工作,详细介绍下?怎么学安卓的?最近有没有学习Java和安卓,说一个印象最深刻的点?
- 问canvas绘图的流程,用canvas怎么画一个立方体?坐标自定,怎么给每个面涂色?
- OpenGL是怎么用的?surfaceView和view有啥区别?
- 设计题:设计一个通讯录,用什么数据结构实现?如何实现一个方法,可以增加一条联系人消息?如何避免增加重复的联系人?如果同名同姓的人只要联系方式不一样的可以添加,要怎么实现?怎么判断输入的电话号码的是否有效?怎么判断输入的Email是否有效?.com和.cn的合法性怎么考虑?一级域名二级域名的概念了解吗?
- 家在哪边?为什么考虑来上海?上海压力相对较大,是怎么考虑的?