前言
怀揣着对大厂的梦想,程序员小王本想在工作两至三年的时间内能进入大厂,奈何竞争是如此激烈。而且进入大厂并不容易,曾经一度被腾讯、京东、美团等大厂刷下来,甚至有些公司连面试机会都没给。今年恰好趁着疫情那段时间的空档期,程序员小王下定决心,向腾讯发起“总攻”。
在这次面试腾讯之前,程序员小王在去年年底到今年6月份这段时间不断的查缺补漏,把大部分时间都花在了学习技术上面,去看腾讯招聘网站上的岗位需求是什么,基础不好就狂刷四大组件、布局使用、多线程 & 动画,计算机基础不够深就扎进去学......
后面终于在三次腾讯内部开发岗位面试之后,敲定了岗位,定级T3-2
介绍
笔记作者: 来自于腾讯T-3级架构师: jett
笔记特点: 条理清晰,知识点系统化模块化,见解详细全文有2246页,含图像化表示更加易懂。
内容概要: Android 相关,性能优化,Java 相关,Kotlin 相关,网络相关,插件化&热修复&模块化&组件化 &增量更新&Gradle,图片相关,Flutter 相关,一线互联网面试真题解析等技术栈!
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。如有需要获取资料文档的朋友 可以关注我的【GitHub】免费获取。
Android 相关
1. Android 之 SharedPreferences 内部原理浅析
2. Android 源码分析-消息队列和 Looper
3. Android 源码分析—带你认识不一样的 AsyncTask
4. Android 性能优化之使用线程池处理异步任务
5. Android Context 完全解析,你所不知道的 Context 的各种细节
6. LocalBroadcastManager 的实现原理,与 BroadcastReceiver 异同
性能优化
由于手机硬件的限制,内存和CPU都无法像pc一样具有超大的内存,Android手机上,过多的使用内存,会容易导致oom,过多的使用CPU资源,会导致手机卡顿,甚至导致anr。一般是从一下几部分进行优化:**布局优化,绘制优化,内存泄漏优化,响应速度优化,listview优化,bitmap优化,线程优化
1.Android 性能优化来龙去脉总结
2.Android 性能优化最佳实践
3.Android GC 原理
4.JVM 的 工作原理,层次结构 以及 GC 工作原理
5.Java 内存问题 及 LeakCanary 原理分析
6.Android 性能优化之正确的异步姿势
7.Android 性能优化之布局优化
Java 相关
1.Java 四种线程池的用法分析
2.Java 有几种文件拷贝方式?哪一种最高效?
3.使用 FileChannel(文件通道)来实现文件快速复制
4.JVM 类加载机制详解 JVM 类加载过程
5.JVM 类加载机制详解类加载器与双亲委派模型
6.Java 实现线程同步的几种方式
7.Java IO 流之字节流与字节缓冲流
Kotlin 相关
1.从原理分析 Kotlin 的延迟初始化: lateinit var 和 by lazy
2.From Java To Kotlin
3.怎么用 Kotlin 去提高生产力:Kotlin Tips
4.使用 Kotlin Reified 让泛型更简单安全
5.Kotlin 里的 Extension Functions 实现原理分析
6.Kotlin 系列之顶层函数和属性
7.Kotlin 兼容 Java 遇到的最大的 “坑”
8.Kotlin 的协程
网络相关
不仅仅 web 开发,HTTP 是天天需要打交道的东西,Android 开发面 试也会经常被问及计算机网络知识,但我发现大部分人对 HTTP 只是 浅尝辄止,对更多的细节及原理就了解不深了,在面试的时候感觉非常 吃力。这篇文章就是为了帮助大家树立完整的 HTTP 知识体系,并达 到一定的深度,从容地应对各种灵魂之问,也同时提升自己作为一个 web 开发的专业素养吧。
1.(建议精读)HTTP 灵魂之问,巩固你的 HTTP 知识体系
2.HTTPS 原理浅析及其在 Android 中的使用
3.HTTP 断点续传(分块传输)
4.HttpDns 原理是什么
5.《客厅 TV-APP HttpDNS 技术接入与实战》
6.HttpDns 接入以及全局替换的实现
7.TCP、UDP、HTTP、SOCKET 之间的区别
8.TCP 与 UDP 的区别
插件化&热修复&模块化&组件化 &增量更新&Gradle
插件化技术最初源于免安装运行 apk 的想法,这个免安装的 apk 可以 理解为插件。支持插件化的 app 可以在运行时加载和运行插件,这样 便可以将 app 中一些不常用的功能模块做成插件,一方面减小了安装 包的大小,另一方面可以实现 app 功能的动态扩展。想要实现插件化,主要是解决下面三个问题: 1.插件中代码的加载和与主工程的互相调用 2.插件中资源的加载和与主工程的互相访问 3.四大组件生命周期的管理
1.Android 插件化库比较
2.深入理解 Android 插件化技术
3.插件化(不同插件化机制原理与流派,优缺点。局限性)
4.热修复
5.模块化实现(好处,原因)
6.项目组件化的理解
7.Android Gradle Plugin 源码分析
8.Android Gradle Plugin 源码阅读与编译
图片相关
1、 图片库对比
2、LRUCache 原理
3、图片加载原理
4、自己去实现图片库,怎么做?
5、Glide 源码解析
6、Glide 使用什么缓存?
7、Glide 内存缓存如何控制大小?
8.Fresco 图片框架内部实现原理探索
Flutter 相关
Flutter 的目标是使同一套代码同时运行在 Android 和 iOS 系统上,并且拥有媲 美原生应用的性能,Flutter 甚至提供了两套控件来适配 Android 和 iOS(滚动 效果、字体和控件图标等等)为了让 App 在细节处看起来更像原生应用。Flutter 开辟了一种全新的思路,从头到尾重写一套跨平台的 UI 框架,包括 UI 控件、渲染逻辑甚至开发语言。渲染引擎依靠跨平台的 Skia 图形库来实现, 依赖系统的只有图形绘制相关的接口,可以在最大程度上保证不同平台、不同设 备的体验一致性,逻辑处理使用支持AOT的Dart语言,执行效率也比JavaScript 高得多
1.Flutter 原理与实践
2.揭秘 Flutter Hot Reload(原理篇)
3.Flutter 动态化探索
4.Flutter 如何和 Native 通信-Android 视角
5.深入理解 Flutter Platform Channel
6.Flutter Engine 编译指北
7.深入理解 Flutter 多线程
8.Flutter 状态管理 - 初探与总结
一线互联网面试真题解析
1.计算机基础面试题
2.数据结构和算法面试题
3.Java 面试题
4.Android 面试题
5.其他扩展面试题
6.非技术面试题
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!以下是目录截图(部分):
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。 文章中的学习笔记我都整理在了我的GitHub里面,需要的可以查看我的【Github】第一篇文章里可以查看
下附Android架构面试视频讲解: