美文网首页Android开发Android开发经验谈Android技术知识
面试腾讯被怼,闭关28天“啃完”215页PDF,直接拿下阿里of

面试腾讯被怼,闭关28天“啃完”215页PDF,直接拿下阿里of

作者: 4ca1bbef6a0c | 来源:发表于2020-06-08 22:25 被阅读0次

背景

本人上的是一所专科院校,学的是Android开发,一直以进入大厂为目标,毕业前几个月就开始往大厂投简历,投了十几份一直没回复,刚好腾讯校招,于是就去了腾讯面试。

这次面试却让我终身难忘,因为我被面试官问的面红耳赤,面试官问的好多东西我都没回答出来,还没面试完我就感觉挂了。

面试完后怀着失落的心情回到学校,回校后我开始反思,“为什么面试官问的我都不会”?于是我开始系统的复习,我把学过的知识和网上找的资料都整理成了PDF,用了28天“啃完”了这份215页的PDF,然后参加了阿里校招,最后成功拿下了阿里的offer。

今天我就把我整理的这份PDF文档分享出来,希望给即将毕业的同学提供一些帮助。

由于文章篇幅有限,我只把一些知识点列了出来,文末有详细PDF文档的免费领取方式。

这份PDF包括了Android基础、Android进阶、Java基础、Java并发、Jvm、kotlin、网络、设计模式、算法题、Flutter。同时也有面试时面试官必问的知识点。

Android基础

1.Activity

  • Activity的四大启动模式,以及应用场景?
  • Activity中onStart和onResume的区别?onPause和onStop的区别?

2.屏幕适配

  • 屏幕适配原理是什么

3.Android消息机制

  • Android消息机制介绍
  • Looper在主线程中死循环为什么没有导致界面的卡死?
  • IdleHandler介绍

4.View事件分发机制和View绘制原理

  • View事件分发机制
  • View绘制原理

5.Bitmap

  • Bitmap的内存计算方式
  • Bitmap的高效加载

Android进阶

1. Binder

  • Binder的介绍?与其他IPC方式的优缺点?
  • Binder的通信过程?Binder的原理?

2. 序列化

  • Android有哪些序列化方式?

3. Framework

  • Zygote孕育进程过程?
  • Activity的启动过程?
  • App的启动过程?
  • Apk的安装过程
  • Activity、Window、ViewRoot和DecorView之间的关系?

4. Context

  • Context概念
  • Context与ApplicationContext
  • 引用的保持
  • Context的应用场景

5. 断点续传

  • 多线程断点续传?

6. 性能优化

  • 布局优化
  • 绘制优化
  • 内存优化
  • 启动速度优化
  • 包体优化
  • 耗电优化
  • ListView和 Bitmap优化
  • 响应速度优化
  • 线程优化
  • 微优化

7. 第三方库

  • Glide
  • OkHttp
  • Retrofit
  • RxJava
  • Android Jetpack
  • 插件化

Java基础

1. Object

2. String

3. 面向对象的特性

  • Java中抽象类和接口的特点?
  • 关于多态的理解

4. 集合

5. 泛型

  • 说一下对泛型的理解
  • 什么是类型擦除?

6. 反射

Java并发

1. 线程

  • 线程的状态有哪些
  • 线程中wait和sleep的区别
  • 线程和进程的区别

2. 线程池

  • 与新建一个线程相比,线程池的特点
  • 线程池中的几个参数是什么意思,线程池的种类有哪些
  • 线程池的工作流程

3. 锁

  • 死锁触发的四大条件
  • synchronized关键字的使用?synchronized的参数放入对象和Class有什么区别?
  • synchronized的原理
  • synchronized和Lock的区别
  • 悲观锁和乐观锁的举例?以及它们的相关实现
  • CAS是什么?底层原理

4. 线程间通信

  • notify和notifyAll方法的区别
  • wait/notify和Condition类实现的等待通知有什么区别

5.多线程间的特性

  • 多线程间的有序性、可见性和原子性是什么意思
  • happens-before原则有哪些
  • volatile的原理

6. 阻塞队列

  • 通常的阻塞队列有哪几种,特点是什么
  • ConcurrentHashMap的原理

Jvm

1.Java内存模型

  • Jvm内存区域是如何划分的
  • Jvm内存模型是怎么样的
  • String s1 = "abc"和String s2 = new String("abc")的区别,生成对象的情况

2. GC机制

  • 如何判断对象可回收
  • GC的常用算法
  • Minar GC和Full GC的区别
  • 说一下四种引用以及他们的区别

3. 类加载

  • 类加载的过程
  • 类加载的机制,以及为什么要这样设计

kotlin

1. 基础

  • ==、===和equal的区别
  • var和val的区别

2. 函数

  • Kotlin中默认参数的作用以及原理
  • Kotlin中顶层函数的原理
  • 中缀函数是什么
  • 解构函数的本质
  • 扩展函数的本质
  • 扩展函数和成员函数的区别

3. 类、对象和接口

  • Kotlin中常用的类的修饰符有哪些
  • Kotlin中可见性修饰符有哪些
  • Kotlin中的内部类和Java中的内部类有什么不同
  • Kotlin属性代理背后原理
  • object和companion object的一些特点

4. lambda

  • lambda表达式有几种
  • kotlin和Java内部类或者lambda表达式访问局部变量有什么不同
  • 使用lambda表达式访问的局部变量有什么不同
  • 序列是什么?集合类和序列的操作符比较
  • 为什么要使用内联函数?内联函数的作用

5. 类型系统

  • Kotlin中的基本数据类型的理解
  • 只读集合和可变集合的区别
  • Array<Int>和IntArray的区别
  • 使用实化类型参数解决泛型擦除的原理是什么

6. 协程

  • 协程是什么?协程的有什么特点
  • 协程的原理

网络

1. HTTP和HTTPS

  • HTTP是哪一层的协议,常见的HTTP状态码有哪些,分别代表什么意思
  • HTTP 1.1 和HTTP 2有什么区别
  • HTTP和HTTPS有什么区别
  • SSL/TLS的握手过程
  • HTTPS传输过程中是如何处理进行加密的?为什么有对称加密的情况下仍然需要进行非对称加密?

2. TCP相关

  • TCP的三次握手过程,为什么需要三次,而不是两次或者四次
  • TCP的四次挥手过程
  • TCP和UDP有什么区别
  • TCP为什么是一种可靠的协议?如何做到流量控制和拥塞控制

设计模式

1. 六大原则

2. 单例模式

  • 单例的常用写法有哪几种
  • DCL模式会有什么问题

3.需要关注的设计模式

4. MVC\MVP\MVVM

  • MVC、MVP和MVVM是什么
  • MVC和MVP的区别是什么
  • MVVM和MVP的最大区别在哪
  • ViewModel如何知道View层的生命周期

算法题

1.排序

  • 比较排序
  • 冒泡排序
  • 归并排序
  • 快速排序
  • 线性排序
  • 计数排序
  • 桶排序

2.二叉树

  • 顺序遍历
  • 层次遍历
  • 左右翻转
  • 最大值
  • 最大深度
  • 最小深度
  • 平衡二叉树

3.链表

  • 删除节点
  • 翻转链表
  • 中间元素
  • 判断是否为循环链表
  • 合并两个已排序链表
  • 链表排序
  • 删除倒数第N个节点
  • 两个链表是否相交

4.栈 / 队列

  • 带最小值操作的栈
  • 有效括号
  • 用栈实现队列
  • 逆波兰表达式求值

5.二分

  • 二分搜索
  • X的平方根

6.哈希表

  • 两数之和
  • 连续数组
  • 最长无重复字符的子串
  • 最多点在一条直线上

7.二叉搜索树

  • 验证二叉搜索树
  • 第K小的元素

8.数组 / 双指针

  • 加一
  • 删除元素
  • 删除排序数组中的重复数字
  • 我的日程安排表
  • 合并排序数组

9.贪心

10.字符串处理

  • 生成括号
  • Excel表列标题
  • 翻转游戏
  • 翻转字符串中的单词
  • 转换字符串到整数
  • 最长公共前缀
  • 回文数

11.动态规划

12.矩阵

13.二进制 / 位运算

Flutter

1.Dart

  • Dart 当中的 「..」表示什么意思
  • Dart 的作用域
  • Dart 是不是单线程模型?是如何运行的
  • Dart 是如何实现多任务并行的
  • 说一下Dart异步编程中的 Future关键字
  • 说一下Dart异步编程中的 Stream数据流
  • Stream 有哪两种订阅模式?分别是怎么调用的
  • await for 如何使用
  • 说一下 mixin机制

2.Flutter

  • Flutter框架的优缺点
  • Flutter的理念架构
  • 介绍下FFlutter的FrameWork层和Engine层,以及它们的作用
  • 介绍下Widget、State、Context 概念
  • 简述Widget的StatelessWidget和StatefulWidget两种状态组件类
  • StatefulWidget 的生命周期
  • 简述Widgets、RenderObjects 和 Elements的关系
  • 什么是状态管理,你了解哪些状态管理框架

最后

对于大厂面试,我最后想要强调的一点就是心态真的很重要,是决定你在面试过程中发挥的关键,若不能正常发挥,很可能就因为一个小失误与offer失之交臂,所以一定要重视起来。
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

需要这份PDF文档的朋友可以私信我【资料】或者点这里免费领取
Android最全面试复习资料


相关文章

网友评论

    本文标题:面试腾讯被怼,闭关28天“啃完”215页PDF,直接拿下阿里of

    本文链接:https://www.haomeiwen.com/subject/mxnrtktx.html