腾讯音乐事业群 Android 移动客户端面经,成功斩获offer!

一面(39min)

请你介绍一下之前参与项目及职责

应用怎么和后台做数据交换,数据格式是怎么样的,客户端是怎么解析的?

如果请求失败之后客户端该怎样进行优化?

HTTP 是稳定的协议吗?

TCP 如何保证传输的数据是稳定的?

TCP 为什么要三次握手?

TCP 关于安全和稳定性的手段应该如何应用到项目里?

后台数据回到客户端之后,可以先缓存,缓存该如何设计?(多线程)

假如此刻在主线程,要处理网络传回的数据并且存入数据库,再返回来更新 UI。此处涉及到的网络线程切换 UI 线程如何操作?

线程池用过吗?谈谈线程池主要参数和处理流程

核心线程数会无限创建吗?如果超出了最大线程数该怎么处理?除了扩大队列长度之外怎么办?

GC 原理

类加载机制

每个阶段具体是怎么做的,java 如何变成 class

两个队列实现一个栈的功能

找出出现次数大于数组长度一半的数

反转字符串

死锁的条件

如何保证线程安全?

有用过读写锁吗?

数据库的共享锁,为什么这样设计?

二面(35min)

怎么考虑的整个 APP 的整个架构?

请你谈下MVP/MVC/MVVM的区别?

请你分析一下不同架构

有没有了解过容器式的架构模式?

讲讲 Fresco 架构层级,大概怎么实现的?为什么要用它?内存管理怎么实现的?

了解软引用和弱引用吗?

内存峰值如何控制?

View 的引用怎么做的?

什么列表管理图片?

讲讲三级缓存管理图片的流程,缓存列表的类型是什么?

有没有看过源码?

除了内存之外 Fresco 还有其它优势吗?

图片内存复用有了解过吗?

为什么要用 OkHttp ?它的优势有哪些?线程池怎么设定?

项目里碰到最大的困难是什么?

Android 方面有遇到什么问题?

性能上有优化吗?

项目主要是信息流为主的项目,有没有考虑使用 H5 开发?有了解过 Web 这块吗?

对跨平台的技术有使用吗?

前后端数据用什么协议传输的?

视频流是什么格式的?怎么解码?

JNI 了解吗?那 C++ 怎么调用 Java?

常用的设计模式是什么?

如何真正保证单例只有一个实例?(先说了双检,但是性能不行,又说了静态内置类的方案)还是要场景相关?

腾讯三面 (60min)

快速排序

构造大根堆

最长公共子序列

往 a [100] 中插入 1-100 的随机不重复数字 java(洗牌算法)

如何设计flutter动态化方案的实现的?

flutter绘制原理是什么?

动态化如何实现的?

RN动态化的原理?

两种方案的对比 ios那边动态化有方案没

谈谈你对算法的理解 在公司里面写需求的话 用到了吗 如何优化安卓各自方面 内存泄漏咋处理

对编程语言的理解 dart c java kotlin c++ 有那些区别?

编程语言底层实现是什么 为什么有这么多不同语言

谈谈你觉得最有意思的数据结构 // 跳表

觉得什么才是一个程序最重要的地方 如何去设计一个系统 你如何下手

谈谈你的技术发展方向 如何对你对职业的规划

面试官介绍了下他们团队业务

HR面(45min)

介绍你自己

你觉得研究生期间比较挫败的一件事是什么?

这件事过去多久了?

找工作有什么特别想去的公司吗

你父母是做什么的啊

你是独生子女吗?

你有女朋友/结婚了吗?

你有什么要问我的吗?

hr面还是算是轻松,小哥哥很文艺,说话蛮温柔的。

前天收到了腾讯的hr信息确认,然后就收到了腾讯的offer。

总体感觉:腾讯的面试比较注重基础和细节,面试官人都很不错,会主动让你热身,对面试官提出的问题,也会很仔细地回答。现在回忆起来,无论是在面试还是其他的细节上,腾讯都做得井井有条,也很人性。不愧是大厂,很赞!

感谢腾讯课堂总结的面试专题资料,让我顺利获得了腾讯面试的offer。喝水不忘挖井人,在这我也将他们的资料转发给有需要的朋友,共同学习,共同进步。

点击下方链接:

Android高级进阶视频、面试真题解析免费分享

Android高级架构进阶课程+面试专题视频解析

2019Android面试专题汇总

设计模式专题

数据结构与算法专题