腾讯PCG QQ客户端 一面 二面 三面 HR面
一面:
拷打小米实习的工作内容 (1.登录和token过期逻辑优化 2.本地缓存和云端缓存如何一致性
recyclerview如何优化?如果我来做这个需求怎么写? (优化布局UI 多用约束布局和merge来代替传统布局 结合recyclerview的四种缓存策略根据用户需求进行修改 通过case判断不同view的id复用监听器)
图片的缓存有几层? (内存和磁盘 内存的话比如SP/MMKV+Bean 磁盘的话如图片的存储指定路径
图片加载如何优化? (使用Glide库 异步加载 按照需求对图片进行缩放 预加载
为什么glide会比传统加载方式更好?(Glide在内存中缓存图片,减少重复加载和解码。减少网络请求,避免在主线程进行耗时操作
实习中怎么解决和定位问题? (定位的话主要靠日志分析、debug模式定位和负责对应模块的日志comment 解决的话根据不同的需求进行不同的技术选型
你这个分析问题的方法怎么有点靠猜啊? (我一般是自己分析后带着思路和解决方案再去找leader沟通 如果没什么问题后再去解决问题 又重复了一遍上一个问题的回答
一道中等难度的贪心题
TCP和UDP的区别?
各自的应用场景?
如何在弱网络的情况下优化TCP?
讲一下TCP的四次挥手?能不能优化成三次?
线程和进程的区别?为什么不可以一个进程包含很多个线程呢反而是很多个进程呢?
讲一下死锁?发现死锁后如何解决?
算法题的时间复杂度和如何判断复杂度?
反问:
业务具体负责内容?
怎么看待跨平台的发展?
二面:
xml的优化? (多用约束布局相比传统的Linear这些减少了嵌套
还有吗? (讲了view的绘制流程 onlayout onmeasure ondraw
了解布局算法吗? (不会啊 这什么鬼啊
小米实习中的用户登录态如何实现? (key-value MMKV
内存映射和哈希表存储? (凭自己理解答的 感觉只对了一半
会现代数据库吗? (不会 面的客户端不会数据库
之前有在项目中接入3D动画特效吗? (没有
Flutter的优缺点?和安卓渲染的区别 (Flutter与原生交互繁琐复杂 生态小很多时候需要自己解决问题 渲染区别主要是openGL和skia2的区别 讲了一下区别
Flutter包内存为什么比原生大? (自带渲染引擎和框架会增大应用的内存
Flutter如何调试内存分布? (答了用Dart DevTools就被喊停了估计是得到了想要的答案
安卓怎么调试内存?安卓常规内存分为几部分? (答了应用程序内存 系统缓存 系统服务没答完就被喊停 估计是觉得ok了
讲一下websocket协议切换的过程?http的断点传续?http分块机制(不会)?二进制怎么编码?key-value怎么编成二进制(转成字节 然后就不知道了
编码的时候规则核心是什么?Flutter中视频怎么播放?(和别人约定俗成 对数据类型达成一致? 没什么含金量就用了组件库)
用过kotlin的compose吗?compose底层用什么组件?kotlin怎么跑在多个平台上(不会)?kotlin怎么编译(答一半 感觉他满意了?
CPU架构 ARM64?CPU指令类型(只答了一个)?经典指令集和复杂指令集的区别(不会)?
函数栈帧?参数传递操作系统怎么实现 除了栈?寄存器有哪些?
Kotlin如何实现多线程?
讲一下RxJava和协程?
线程冲突怎么办? (上锁 看情况自旋和互斥
volidate了解吗?指令重排什么意思? (指令重排不会
http缓存?讲一下协商缓存?etag和last_Modified中etag怎么实现的?哈希算法有哪些?
一道中等难度的贪心算法?
反问:
对老项目代码重构怎么看?
对客户端的前景的看法?
三面:
聊天
让我给面试官介绍Flutter?
讲讲openGL和skia的区别?
为什么之前做的项目是Flutter 今年开始做安卓?
HR面后第二天offer:
家在哪里?
谈恋爱了吗?
为什么选择腾讯?
如何快速解决需求?
对QQ感情很深 对我们部门很感兴趣
#腾讯##PCG##客户端面经##安卓#