前言
为什么要尽量让自己进大厂?
如果毕业就进了大厂,那你将得到业内大牛的指导,以及随处可见的技术碰撞。新技术的跟进也是非常快的,在这样的环境中,你的技术成长自然是非常快的。如果自己足够努力,用不了三年,你可能也将会跟他们水平差不多。
所以,明白这一点的我,很早就已经立下志愿,目标是Android工程师。经过我的努力,付出就是有回报的,我总算进入了腾讯工作。下面分享一下我自己的面经。
以下内容除了面经以外,还涉及到整理的Android学习文档、学习笔记、面试题库、实战书籍等,均可以免费分享PDF,有需要的文末领取~
面试经历
——腾讯一面:
①针对微服务进行提问:
- 微服务架构
- 框架的实现
- 服务治理
- 分布式一致性
②日志监控系统:
- 考察架构、ELK相关知识,重点要描述ELK的一些架构原理,如倒排索引的原理等;
③消息队列:
- Kafka中消息可以被多个消费者消费吗?
- 选举机制
- HW机制
④数据库和Redis相关:
- 索引的原理
- 几种事务的区别
- 数据结构
- 延时队列如何实现
- 分布式锁原理
⑤其他开放问题:
- 开放问题,不过多描述,如项目中遇到的问题,如何解决的?描述生产过程中运行的问题,并描述排查问题。
——腾讯二面(笔试):
考察具体岗位的技术栈语言的基础知识,题目不难,要求基础扎实和广度,文中不过多赘述。
——腾讯三面+四面(技术组长面):
腾讯的三面和四面都是技术组长来面的,这个阶段相对来说还是比较紧张的,面试内容则主要是聊解题的思路以及项目经验,考察个人对于技术掌握的一个广度,涉及到比较多的架构设计。
- 项目
- 开放性题:解题思路、同事之间的协作问题。
- 负载均衡
- 算法
- ngnix如何做限流?
- 四层LVS和七层Ngnix的区别
- 微服务架构的设计思路
——腾讯五面+六面(技术总监面):
这两面的面试官应该是技术总监,面试难度应该是这一套流程里最大的,主要考察面试者的两个方面,包括系统设计和架构设计,需要面试者对于技术知识有比较深度的理解和认识。
①针对系统设计提问:
- 秒杀系统如何设计?分接入层、接口层、消息队列层、逻辑层四个方面讲解,接入层可以做服务治理相关事情,接口层做抢购开关、黑白名单、随机拒绝等处理,逻辑层具体抢购逻辑实现,涉及到redis分布式锁以及DB和Redis的一致性问题。
- 分布式事务的几种实现。重点讨论了这几种实现的区别,面试官要求我画出基于可靠消息服务的消息队列实现分布式事务架构图,然后对上游服务和下游服务如何保证消息可靠性和一致性。
②针对微服务架构进行提问:
- 服务拆分的原则
- RPC框架原理
- 配置管理(etcd)的一致性协议raft选举原理
③其他:
- 服务治理
- 服务限流算法
- 服务降级的指标和恢复指标
- 服务熔断
④开放性问题:
- 在项目中,你印象中遇到的印象最深的一个难题,如何解决的?
- 在面试过程中,你觉得面试官问的哪个问题让你印象最深,为什么?
- 生活中有遇到过什么困难吗?
总结
每家公司都有自己的选择标准,我们当然需要迎合公司的要求,但是如果没有技术,一切都是空谈,在具体的面试提问上,我们可以顺着面试官想要的答案上去靠,这就需要我们具备扎实的专业知识,所以大家一定要好好准备,加油!
为了帮助大家迎战Android面试,这里我给大家整理了一份2022最新的Android面试题,相信会给大家带来不少的帮助,对自己技术有把握的朋友也可以看看,查漏补缺也是很重要的,有需要的朋友可以点击下方卡片自取。
《2022最新Android中高级面试真题汇总+解析》
以上是面试题的整体框架,包含知识脉络 + 诸多细节,能极大程度地节省大家在网上搜索资料的时间。
面试题合集分为9个部分:Java基础、Android基础、UI控件篇、网络通信篇、架构设计篇、性能优化篇、源码流程篇、新技术篇、面试篇,共1932页!
第一章 Java基础
- 静态内部类和非静态内部类的比较
- 多态的理解与应用
- java方法的多态性理解
- java中接口和继承的区别
- 线程池的好处,详解,单例(绝对好记)
- 线程池的优点及其原理
- 线程池的优点(重点)
- 为什么不推荐通过Executors直接创建线程池
- 不怕难之BlockingQueue及其实现
- 深入理解ReentrantLock与Condition
- Java多线程:线程间通信之Lock
- Synchronized 关键字原理
- ReentrantLock原理
- HashMap中的Hash冲突解决和扩容机制
- JVM常见面试题
- JVM内存结构
- 类加载机制/双亲委托
第二章 Android基础
- Activity知识点(必问)
- Fragment知识点
- Service知识点
- Intent知识点
第三章 UI控件篇
- 屏幕适配
- 主要控件优化
- 事件分发与嵌套滚动
- 动态化页面构建方案
第四章 网络通信篇
- 网络协议
第五章 架构设计篇
- MVP架构设计
- 组件化架构
第六章 性能优化篇
- 启动优化
- 内存优化
- 绘制优化
- 安装包优化
第七章 源码流程篇
- 开源库源码分析
- Glide源码分析
- Android面试题:Glide
- day 20 面试题:Glide面试题
- 聊一聊关于Glide在面试中的那些事
- 面试官:简历上如果写Glide,请注意以下几点…
- OkHttp源码分析
- okhttp连接池复用机制
- okhttp 流程和优化的实现
- 一篇让你受用的okhttp分析
- OkHttp面试之–OkHttp的整个异步请求流程
- OkHttp面试之–HttpEngine中的sendRequest方法详解
- OkHttp解析大总结
- Okhttp任务队列工作原理
- Android高频面试专题 - 架构篇(二)okhttp面试必知必会
- Android 网络优化,使用 HTTPDNS 优化 DNS,从原理到 OkHttp 集成
- Retrofit源码分析
- RxJava源码分析
第八章 新技术篇
- 实战问题篇
第九章 面试篇
- 开源文档
- 面试文献
篇幅原因,文中仅以截图形式展示部分内容
1932页《2022最新Android中高级面试真题汇总+解析》 点击下方微信卡片,即可免费领取↓↓↓