前言
2022年已经到来,一年一度的“金三银四”很快也要来临。面对即将到来的跳槽季,计划跳槽的人士也跃跃欲试。要想成功跳槽,实现完美逆袭,就要做好准备,做好规划。有的人为了2022跳槽早早做足了准备,有的人在临阵磨刀,想必屏幕前的你也想在2022年涨薪吧,那么问题来了,怎么才能达到目标呢。我已经通过跳槽,拿到了腾讯的offer。
给大家分享一下我去年面试腾讯的一些面试题还有面试流程。算是给大家提供一下参考吧。
面试题和流程
腾讯一面(全程大约1h左右)
- 自我介绍
- RecyclerView和ListView的区别
- TListView 如何缓存的?
- RecyclerView联系人列表如何实现A-Z快速定位
- 广播和EventBus的区别
- 主线程Looper循环为什么没有卡主线程?nativePollOnce
- SharedPreference的线程安全、进程安全,如何跨进程
- Android 中实现多线程: threads, Handler, AsyncTask, IntentService
- Android 中如何实现多进程
- 自定义View的过程:measure,layout,draw
- LayoutInflater#inflate 的 attrachToParent true 是什么意思
- theme 和 style 有什么区别,优先级
- 有哪些进程间通信方式
- View 的渲染过程
- Binder 的原理和优势
- AIDL 中的 oneway 有什么用,方向标签 in、out、inout 是什么意思
- Android 中有哪些动画,都说下
- Serializable 和 Parcelable 的区别
- 知道哪些Layout,ConstraintLayout 的特点是什么
- 手机开发者选项有哪些,不保留活动是什么
(面试官问了很多基础的问题,有些回答的并不是很流利,不知道还有没有希望。)
二面是在星期四的一个下午,距离一面过去大约有一个星期了吧。时间都有那么久了,我以为一面可能凉了,结果就收到了面试的邀约。
腾讯二面(大约45min)
- 说一下你对哪个项目比较熟悉、为什么做这个项目
- 项目采用了什么架构,数据库如何设计的
- 数据库由哪些表,为什么有这些表
- 主要有哪些核心模块,模块之间如何通信的
- 如何保存会话状态,有哪些方式、区别如何
- 分布式session如何管理,你有哪些方案
- 学过数据结构和算法吗(当然),你说说二分搜索的过程
- 说一下快排的过程,写一下伪代码
- 了解哪设计模式,举例说说在jdk源码哪些用到了你说的设计模式
(二面大部分问的都是项目技术上的。感觉我回答的并不是特别好,所以感觉没什么希望了。)
就在我准备重新投简历的时候,他们给我打电话了,让我约个时间视频面试,然后就开始了第三轮面试。
腾讯三面(视频面,全程大概1h左右)
- 说下你平时看的一些技术博客,书籍
- linux 下的一些指令
- 工作中你觉得最不爽的事情是什么
- 说下你的优缺点
- 有没有想过去创业公司
- 写个 strcpy 函数
- 说说你自己的性格
- 给你一个系统,后台的逻辑已经实现了,但是前端加载很慢,怎么检测
- 以后可能要学习很多新技术,你怎么看
- 项目中遇到的困难(提前想好,并且把实现或者优化方法说清楚)
- 系统的量级、pv、uv 等
- 应对高并发的解决办法(分布式)
- 在项目中主要负责了哪些工作
- nginx 的负载均衡
- 分布式缓存的一致性,服务器如何扩容(哈希环)
(第三轮面试整体感觉还行,没有什么特别大的压力)
HR面(大约30min)
- 平常怎么学习的
- 兴趣爱好
- 觉得自己前面几轮面试怎么样
- 除了Java还研究过其它什么技术(我说AI,区块链)
- 跟我介绍一下区块链~
- 怎么看待国内区块链的发展
- 跟我说一下你认为最具有挑战性的项目
面试建议
1.有耐心且主动
面试不要着急着去问结果,一般在hr面的时候,她的态度多少能够猜个七七八八的,如果等上一周还没有通知,那就可以主动去问了。
2.刷题是为了提升自己的运气
运气在面试过程中是非常重要的,刷题的目的很简单,除了巩固我们所掌握的,另一个就是为了能提高在面试中我们的运气,如果能够问到一样的题是再好不过了,当然这个办法是适用于职级中低岗位。
3.掌握基础,注意深度
腾讯面试最喜欢问两类问题,一类是基础,另一类就是深度。基础部分,无非就是我们所掌握的技术基础内容,基本上只要是有准备的都没有太大的问题。另一部分就是深度问题,大多涉及到自己之前的工作、项目,面试官所问的问题不仅仅是停留在表面那么简单,背后的原理是什么才是面试官想要问的。
提升自身的技能
面试考察的知识点多而杂,要完全掌握需要花费大量的时间和精力。但是面试中经常被问到的知识点却没有多少。我们只需要把自身的技能提高,当面试官问到这类知识点的时候,我们就可以侃侃而谈,更加大方自信。 我作为从事Android开发者数年的人,大大小小的面试也经历过不少,根据自己的经验还有身边一些朋友的经验,总结了一些面试经常考察的问题。希望帮助到准备跳槽或者正在跳槽的朋友们。
一、设计思想解读开源框架
这份总结的学习手册将Android热修复框架、插件化框架、组件化框架、图片加载框架、网络访问框架、RxJava响应式编程框架、IOC依赖注入框架、最近架构组件Jetpack等等Android第三方开源框架整合成了一套系统知识笔记PDF,长达1042页!相信看完这份文档,你将会对这些Android第三方框架有着更深入、更系统的理解。
本篇包含知识点:
1、热修复设计 2、插件化 3、组件化框架设计 4、图片加载框架 5、网络请求框架 6、RXJava 响应式编程框架设计 7、IOC 架构设计 8、Android架构组件Jetpack
二、Android高级UI开源框架进阶解密
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
三、Android Framework开发揭秘
众所周知,Android是一个基于Linux实现的操作系统。但对于Linux内核来说,Android也仅仅只是一个运行在内核之上的应用程序,与其他运行在内核之上的应用程序没有任何区别。
所以Android也需要运行环境,需要Linux内核在启动完成后加载Android Framework运行所需要的资源。当Framework完成初始化后才能继续启动相应的APK应用程序。
主要内容包含:
第一章 系统启动流程分析 第二章 Binder解析 第三章 Handler解析 第四章 AMS 解析 第五章 WMS解析 第六章PKMS Android10.0 源码解读
四、Android性能优化实战解析
在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。
另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。
五、Android百大框架源码解析
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。这份学习手册包含Android主流库比如OkHttp、Retrofit、EventBus、ARouter源码等等,都有详细的源码解析。
六、NDK模块开发
NDK是原生开发工具包,这套工具允许Android使用C/C++代码,并提供了众多的平台库。
主要内容包含:
NDK 模块开发 JNI 模块 Native 开发工具 Linux 编程 底层图片处理 音视频开发 机器学习
七、Flutter学习进阶
近两年Flutter的热度不断提升,无论在阿里还是外部公司,参与Flutter生态建设的人越来越多。Flutter作为跨端的UI框架,未来也有很大的可能像Rax一样作为集团内营销活动页面搭建的DSL。所以目前学习Flutter,参与Flutter生态建设是一件时髦且有价值的事情。 本篇知识要点: 1、Flutter跨平台开发概述 2、Windows中Flutter开发环境搭建 3、编写你的第一个Flutter APP 4、Flutter开发环境搭建和调试 5、Dart语法篇之基础语法(一) 6、Dart语法篇之集合的使用与源码解析(二) … 12、Flutter中的widget
最后
由于篇幅有限,资料内容过多,需要完整版《2022年Android中高级面试题汇总》的朋友,vx扫描二维码免费领取哦
|