Android客户端——秋招总结
一.面试准备
和春招准备相比,多了如下内容:
- 腾讯实习经历:androidq适配
- Android Audio系统源码
- Android Surface系统源码
- 剑指offer大部分题思路
- android 各版本变化
- …
二.秋招回顾
总的来说
- 腾讯转正成功,9.16发的意向书。
- 上海抖音经历4面技术面+ hr面。9.5发的意向书
- 阿里本来只用终面的,后来hr搞错流程,现在面了3面,还在等待后续通知。
- 有道面了两面,终面需要现场面。放弃
- 猿辅导笔试挂
三.抖音面经
一面 30min
- ArrayList和LinkedInList区别,是否线程安全
- 如果保证上面的线程安全
- volatile
- 原子性和可见性的区别
- synchronized如何保证原子性
- 四种引用
- GC
- Handler(loop死循环,如何唤醒,定时任务的实现)
- 事件分发
- binder(如果实现数据传输,服务端在哪个线程接收数据)
- http如果维护状态
- http如何实现缓存
- RSA加密的原理
二面 40min
- 问实习经历
- 遇到的困难
- final关键字修饰方法,变量,类有什么作用
- final修饰变量的时候,真正的含义
- 内部类为什么要用final修饰变量
- hashmap hasTable ConcurrentHashMap的区别
- activity的四种启动方式
- activity启动方式singleInstance在什么情况下被使用
- 启动另一个app的activity发生了什么
- activity中包含一个ViewGrop,ViewGrop里面包含一个button,手指在Button中心放着,慢慢移动到button外这个过程中发生了什么?
- 上面那个是否会调用button的onClick时间
- 包装类和基本数据类型的区别
- 包装类的两个相同数值的对象是否想等
- Android View有哪些标签,都有什么作用(除了include其他全忘了)
三面 1h
- 自我介绍
- js语言语法(只会简单的,然后面试官放过了我)
- 百度项目
- 语音流如何保证顺序
- android q的适配
- 语音SDK的实现
- jetpack是什么
- livedata是什么
- viewmodel是什么
- kotlin语言语法(网络)
- 如何学习android
- 组件化相关
- gradle的作用,构建过程
- 项目遇到的难点
- 滑动冲突的解决
- rxjava的基本原理
- Retrofit的基本原理
- Retrofit对于反射注解的有什么优化
- Okhttp的拦截器链的设计模式
- 责任链模式在哪里还有使用
- 算法:两个链表是否存在公共节点,找到第一个公共节点
四面 42min
- 很多和技术无关的内容
- 学校经历
- 为什么学习android
- 如何带下一届
- 开过那些印象深刻的分享会
- 实验室大四的就业
- 如何学习android
- 后续个人发展
- retrofit的实现
- 注解的原理
- 如何自己实现注解
- rxjava的原理(背压的实现,操作符的实现)
- android q的适配
- 最近复习了那些
- audio
- surface(大概讲解,surfaceView和普通view的区别)
三.有道面经
一面: 40min
- 算法:翻转数字
- 泛型知道多少
- 泛型的继承
- 泛型的通配符
- 泛型的T
- 两个线程去访问同一个对象的两个synchronized方法是否互斥(互斥)
- 在什么情况下不互斥
- 如何访问两个非静态方法不互斥
- 如何访问两个非静态方法里的代码端互斥
- volatile的原理
- 如何保证int的原子性
- okhttp的源码分析
- 百度实习经历
- 百度实习经历收获
- 一个app存在两个进程,app的application会初始化几次
- 两个进程访问同一个单例是否有问题
- 讲讲单例模式
- 懒汉饿汉
- 锁膨胀
二面 42min
- 撕简单算法。AAAA VBBB DDD给这样一个字符数组。每个单词之间保留一个空格,首字母大写,其他小写
- 说腾讯实习经历
- android q的适配
- 沙盒模式
- 说百度实习经历
- app启动
- view渲染 surfase
- ipc binder机制
- 解数独
三面 需要现场面,放弃
四.阿里面经
因为春招拿过阿里的意向书,本来只用终面,后来因为hr的原因,重回秋招流程
一面:
- 百度实习项目语言助手sdk的维护
- 有没有了解过录音(完整的梳理下audio系统)
- 小度小度的唤醒实现(跨进程的生产者消费者)
- 杂音的消除
- 腾讯实习经历
- 做什么
- android q的适配
- android权限的分类
- android唯一标识符
- tcp三握四挥
- http 1.0 1.1 1.2变化
- udp tcp区别(可靠性即保证,面向连接)
- http https端口号(80 443) 23端口号对应的地址
- https的握手
- https的证书
- 以前用过哪些抓包工具
- 中国墙的实现(https://www.cnblogs.com/weicyNo-1/p/8125763.html)
- 你知道哪些编码集和编码方式
- utf-8,unicode的区别
- 大小端存储
- 介绍一种快排算法(快排,快排优化https://blog.csdn.net/qq_38289815/article/details/82718428)
- 介绍一下自己的亮点
二面 + 三面:
- 很多技术无关问题,就没有做记录
- 实习相关内容
- android q的适配
- 其中一个bug的解决