腾讯音乐事业群 Android 移动客户端一二代码面凉经
一面(39min)
-
项目介绍及职责
-
应用怎么和后台做数据交换,数据格式是怎么样的,客户端是怎么解析的
-
如果请求失败之后客户端该进行怎么优化
-
HTTP 是稳定的协议吗?
-
TCP 如何保证传输的数据是稳定的?
-
TCP 为什么要三次握手?
-
TCP 关于安全和稳定性的手段应该如何应用到项目里?
-
后台数据回到客户端之后,可以先缓存,缓存该如何设计?(多线程)
假如此刻在主线程,要处理网络传回的数据并且存入数据库,再返回来更新 UI。此处涉及到的网络线程切换 UI 线程如何操作?
-
线程池用过吗?讲讲线程池主要参数和处理流程
核心线程数会无限创建吗?如果超出了最大线程数该怎么处理?除了扩大队列长度之外怎么办?
-
GC 原理
-
类加载机制
每个阶段具体是怎么做的,java 如何变成 class
-
两个队列实现一个栈的功能
-
找出出现次数大于数组长度一半的数
-
反转字符串
-
死锁的条件
-
如何保证线程安全?
-
有用过读写锁吗?
-
数据库的共享锁,为什么这样设计?
二面(35min)
-
还是项目介绍
-
怎么考虑的整个 APP 的整个架构?说了 MVP,他说可以考虑用 MVVM(比较新)
分析一下不同架构
-
有没有了解过容器式的架构模式?
-
讲讲 Fresco 架构层级,大概怎么实现的?为什么要用它?内存管理怎么实现的?了解软引用和弱引用吗?内存峰值如何控制?View 的引用怎么做的?什么列表管理图片?讲讲三级缓存管理图片的流程,缓存列表的类型是什么?有没有看过源码?除了内存之外 Fresco 还有其它优势吗?图片内存复用有了解过吗?
-
为什么要用 OkHttp ?它的优势有哪些?线程池怎么设定?
-
项目里碰到最大的困难是什么?
-
Android 方面有遇到什么问题?
-
性能上有优化吗?
-
项目主要是信息流为主的项目,有没有考虑使用 H5 开发?有了解过 Web 这块吗?
-
对跨平台的技术有使用吗?
-
前后端数据用什么协议传输的?
-
视频流是什么格式的?怎么解码?
-
JNI 了解吗?那 C++ 怎么调用 Java?
-
常用的设计模式是什么?
-
如何真正保证单例只有一个实例?(先说了双检,但是性能不行,又说了静态内置类的方案)还是要场景相关?
-
论文是研究生期间发的吗?
- 有实习机会的话你能过来吗?
代码面(1h)
-
快速排序
-
构造大根堆
-
最长公共子序列
-
往 a [100] 中插入 1-100 的随机不重复数字 java(洗牌算法)