小言_互联网的博客

靠这份面试攻略,腾讯微信支付 安卓开发岗 四面上岸啦

258人阅读  评论(0)

清明节过后第一个工作日收到微信支付Offer,做的准备工作也是刷题和不断的充实自己的技术,其实目前腾讯的面试题并不是现在流传的那样,不过还算好顺利拿到了offer,下面来跟大家分享一下我遇到的面试题。

3.22腾讯微信支付 一面(60min)

1、View绘制的流程

2、长连接建立连接的过程

3、TCP三次握手

4、Android应用的启动流程

5、Handler机制

6、如何处理一张比较大的Bitmap

7、如何压缩Bitmap

8、算法题“{}【】()”优先级,字符串是否合法

9、什么时候能来上班

…(一些非技术问题)

3.28腾讯微信支付 二面(35min)

1、你在项目中扮演什么角色

2、你觉得你项目中最难的地方在哪

3、项目中最能证明你个人技术水平的地方

4、TCP的三次握手,以及在此过程中有哪些不安全性?针对这些不安全性的攻击手段?以及防御手段?

5、HTTP重定向的原理

6、Android JVM的组成部分?

7、JVM内存结构

8、动态代理设计模式

9、HashMap的实现原理

10、Android事件分发机制

11、二选一:

①App启动流程

②Android发生Crash等异常之后系统的处理机制

12、相比于身边的同学,你的优势和短板有哪些?

13、如果你能顺利加入腾讯,你觉得你能给腾讯带来哪些方面的价值?

3.29腾讯微信支付 三面/总监面(微信电话面 31min)

1、有其他实习经历吗?

2、挑一个最能代表你的技术实力的项目讲一下

3、挖项目,不断挖,疯狂挖。

4、项目中学习到了什么技术相关的东西?

5、说一下View的绘制流程

6、场景题:如何实现一个俄罗斯方块游戏?

7、在俄罗斯方块中,如何进行碰撞检测?

8、未来的计划是什么?

9、现在很多毕业生都觉得一线城市房价太高,对这个问题你怎么看?

10、你是哪里人?

11、有女朋友吗?

12、有参加其他公司的面试吗

3.31腾讯微信支付HR面(27min)

1、实验室相关情况

2、什么时候开始接触Android

3、挑一个你觉得你在其中贡献最大的比赛或者项目分享一下

4、你觉得你对于这个项目]的核心贡献是什么

5、项目里的有关数据是如何实现的?

6、项目中其他成员的情况

8、项目最后取得了什么成绩

9、你平常是怎么学习的?有没有什么独特的学习习惯呢?

10、你一般怎么安排自己一天的时间呢?

11、分享一个攻克技术难点的case

12、你会怎么评价自己呢?

13、当时为什么会考虑学Android开发呢?

14、分享一个让你最有挫败感的case

15、确认一下基本信息

(1)学历

(2)工作时间

(3)工作地点

(4)简单介绍一下家庭情况

(5)独生子女?

(6)有直系亲属在腾讯工作吗

(7)健康方面有没有问题

(8)还参加了哪些公司的面试?

总的来说,一面的面试官比较亲切,二面面试官要严肃些,说话比较有气场(应该是个leader),三面的话压力就有点大了。幸运的是最后顺利拿到了Offer。

面试攻略

这份面试攻略是我在某论坛看到并且结合自己的面试经历做了一些调整修改,仅仅针对Android开发岗,希望能给大家一些参考。

1.简历攻略

简历的基本原则是信息真实,少数求职者可能会动歪心思,比如故意延长或缩短某段工作经历,或是对学历进行美容。真别这样,一旦被发现,不只是尴尬。

简历要好好写,用心写,真实地写,而且要对简历上的每个内容都了如指掌。因为简历上的任何东西,都可能被问到。我在面试的时候面试官一直对的项目进行深挖,挖到答不出为止。

如果学校不错,建议简历文件名采用如下格式:某某-XX大学-本科-应聘腾讯Android开发岗位.pdf,看到这简历名,就有想看看的冲动。

如果有github账号且写得很好,或者有开源作品,也可以放到简历中,让人看到你对技术的热爱和追求,这是加分项。

简历的其他注意点也很多,如下4点,不接受反驳:

a. 简历只能是PDF格式。

b. 简历不能是压缩文件。

c. 简历中不能有错别字。

d. 简历最多不超过2页。

总之,自己写完简历后,要好好检查和修改,多站在他人的角度审视自己的简历,也可以让自己信赖的朋友帮修改。

2. 技术面攻略

鸡汤大师说,如果看到地上有纸屑,要去捡起来,然后会被录用。这有点反智。真的,别去捡,没用的!要搞清楚,这是技术面,需要真刀真枪的本领。

组员面、组长面、总监面…,可能你还会遇到更多轮的技术面,我不逐一介绍攻略。这些流程,都是以考查技术为主,故统一介绍。

在面试之前,我去腾讯招聘网站看了相关岗位的要求,就知道要准备的技术内容和方向了。要准备的技术内容,纷繁驳杂,大致如下:

1.Java 基础知识
  • 面向对象的基本思想
  • Object类相关:Object类的几个关键函数、String涉及到的常量池概念,序列化 & 反序列化。
  • 重要关键字:final、static。
  • 内部类:内部类的分类、应用场景、内部类编译成class后是怎么样的。
  • 抽象类 & 接口:区别、应用场景。
  • 编码:编码的目的、分类。
  • 异常:异常体系、自定义异常。
  • 注解:注解的基本概念、分类、编译时注解 & 运行时注解。
  • 容器:重要容器的内部实现、容器间的对比。
  • 内存模型。
  • 垃圾回收。
  • 类加载的过程。
  • 泛型:分类、通配符 & 上下边界、泛型擦除。
  • 反射:使用。
2.Android 基础知识
  • Dalvik、Art虚拟机
  • Activity:生命周期、launchMode。
  • Fragment:生命周期、懒加载、两种Adapter之间的区别。
  • BroadcastReceiver:基本概念、广播分类、权限。
  • Service:生命周期、onStartCommand的返回值、startService和bindService的区别、相同进程 & 不同* * 进程的交互、IntentService实现原理。
  • 重要的工具类 & 源码实现:AsyncTask、HandlerThread、Handler、IntentService、LruCache、LinkedHashMap、SparseArray。
  • RecyclerView:缓存原理、和ListView的对比、Adapter如何适配多种layout。
  • 存储:数据库升级 & 优化、ContentProvider,SharePreference。
  • SDK版本升级的兼容问题。
  • Android的权限管理机制。
3.图片
  • Bitmap相关:Bitmap的大小计算、质量、inJustDecodeBounds、inBitmap。
  • 几种图片格式的对比、压缩。
  • 大图加载:BitmapRegionDecoder
  • 图片库对比
  • LRUCache原理
  • 图片加载原理
  • 自己去实现图片库,怎么做?
  • Glide源码解析
  • Glide使用什么缓存?
  • Glide内存缓存如何控制大小?
4.算法

别无捷径,刷题,但是刷题的时候,要按照题的类型去总结。

5.开源框架
  • RxJava:操作符的应用场景、重点操作符的内部实现、和RxJava的对比。
  • Glide:流程、缓存相关的实现。
  • Retrofit:流程、动态代理 & 注解解析。
  • OkHttp:流程、队列实现、缓存实现。
6.性能
  • 性能优化技巧:启动速度优化、布局优化、内存优化、电量优化、APK大小优化、列表滑动优化。
  • 性能优化工具:TraceView、Systrace、调试GPU过度绘制 & GPU呈现模式分析、Hierarchy Viewer、MAT、Memory Monitor & Heap Viewer & Allocation Tracker、LeakCanary、Lint。
  • ANR
  • ANR原因
  • ANR产生过程源码分析
  • 信息收集过程
  • trace文件分析
  • 分析基本流程
  • 具体示例
  • 如何避免产生ANR
  • 性能实践:解决过的性能问题,从 遇到问题、分析问题、解决问题、结果 四个点进行阐述。
7.View
  • 绘制流程:measure、layout、draw三个关键流程。
  • 事件分发:事件分发的原理、处理过的滑动冲突问题。
  • 自定义View:Canvas & Path,实现过的比较复杂的自定义View。
8.架构设计和设计模式
  • MVC MVP MVVM原理和区别
  • MVP:MVP的思想 & 优劣势、在项目中的应用
  • 项目中常用的设计模式
  • 手写生产者/消费者模式
  • 写出观察者模式的代码
  • 适配器模式,装饰者模式,外观模式的异同?
  • 用到的一些开源框架,介绍一个看过源码的,内部实现过程。
  • 谈谈对RxJava的理解
  • Rxjava发送事件步骤
  • RxJava的作用,与平时使用的异步操作来比的优缺点
  • 说说EventBus作用,实现方式,代替EventBus的方式
  • 从0设计一款App整体架构,如何去做?
  • 说一款你认为当前比较火的应用并设计(比如:直播APP,P2P金融,小视频等)
  • 谈谈对java状态机理解
  • Fragment如果在Adapter中使用应该如何解耦?
  • Binder机制及底层实现
9.源码
  • AMS
  • WMS
  • Binder
  • 应用启动流程
  • APK相关知识点
  • APK构成:resources.arsc组成、AndroidManifest.xml、aapt作用及原理
  • APK打包过程
  • APK安装过程
  • APK签名 & 校验原理
  • dexopt原理
10.网络和安全机制
  • 网络框架对比和源码分析
  • 自己去设计网络请求框架,怎么做?
  • 网络请求缓存处理,okhttp如何处理网络缓存的
  • 从网络加载一个10M的图片,说下注意事项
  • TCP的3次握手和四次挥手
  • TCP与UDP的区别
  • TCP与UDP的应用
  • HTTP协议
  • HTTP1.0与2.0的区别
  • HTTP报文结构

并不是说以上所有知识点都要掌握,世上没有万能人,大家都有知识盲区,遇到困难太正常了。遇到困难还能现场解决,才能体现出自身价值。即便无法解决问题,也可尝试说出自己的思路,而一个人的思路,往往能反映出这个人的心智模式和未来潜力。

总之,技术准备,功在平时。还是应该修炼基本功,有了这份基本功,就不怕变化,毕竟万变不离其宗。至于该怎么提升基本功,建议多学习、多思考、多实践、多总结。

我把所有刷过的大厂面试题都做了一个整理,有需要的朋友可以 点赞+评论 支持下我,然后【点击这里】免费阅读下载。

世上没有银弹,也没有万能捷径,不要浮躁地以为,临时抱佛脚,刷几个题目,就能通过腾讯面试,没那么简单的。功夫修炼,千朝万夕。用兵一时,养兵千日。


转载:https://blog.csdn.net/Android23333/article/details/115488367
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场