一、字节一面 2021.3.28
(不是按顺序写的,最后一个是代码题)
1、自我介绍
2、项目介绍
3、围绕项目(这一块儿问了很久)
4、代码题,深度优先搜索 给你一个二叉树和一个目标值,判断是否有一条路径的各节点之和等于这个目标值
5、tcp、udp区别以及用处
6、Http常见的状态码
7、GET、POST区别
8、GSON
9、RecyclerView的使用,复用机制,四级缓存
10、ListView、RecyclerView的区别
11、事件分发机制
12、记不得了++
二、字节二面 2021.3.28
(一面结束五分钟进行二面)
面试内容围绕四部分进行
0、自我介绍+项目介绍
**1、代码题(第一部分) 动态规划题目,实在太菜,15分钟才写好 **
判断数组中是否存在长度为3的递增子序列 1 5 3 7 9 ture:179 579 379 137 都是 只需要判断是否存在就行
2、安卓知识,围绕View、事件监听、事件分发进行展开(其中依然会穿插项目内容提问)
3、java知识,其实就是问多线程,从synchronized到线程池,synchronized底层和线程池创建方法,然后就是谈了一下GC,四大引用这一块儿知识
4、场景实例(答的感觉有一点拉跨),给你一个需求,从客户端到服务端进行设计,期间问了一些多线程知识,比如原子类和一个CAS
最后就是问了我目前的一个面试情况,然后说感谢我的参加,也不知道是凉了还是啥,许愿三面or hr面。
三、字节三面 2021 . 3.31
(3.30下午通知第二天下午三面,及其紧张,看各类面经好多三面翻车的)
下面内容未按照顺序
1、自我介绍+项目介绍
2、recyclerView的缓存,以及其中的viewpool怎么实现的
3、http1.0和1.1的区别,现在主要用的什么版本,http的请求头,为什么要用http而不是直接用tcp这些底层的协议
4、存储方式有哪些
5、代码题二分查找升序序列中的绝对值最小的数
6、进程和线程的区别
7、有用过什么图片框架嘛(想说glide来着,但是这块儿看的太少,没敢说。。)
8、反问
总结就是感觉答的很一般,有些问题说的不是很满意,就希望面试官放我一马了,孩子只想找个班上(立个flag,拿到offer倒立洗头hhhh)
Android 面试点汇总
需要更多资料的请点这里即可免费获取
-
[Activity]
- [生命周期]
- [启动模式]
- [启动过程]
-
[Fragment]
- [特点]
- [生命周期]
- [与Activity通信]
-
[Service]
- [启动过程]
- [绑定过程]
- [生命周期]
- [启用前台服务]
-
[BroadcastReceiver]
- [注册过程]
-
[ContentProvider]
- [基本使用]
-
[数据存储]
-
[View]
- [MeasureSpec]
- [MotionEvent]
- [VelocityTracker]
- [GestureDetector]
- [Scroller]
- [View 的滑动]
- [View 的事件分发]
- [在 Activity 中获取某个 View 的宽高]
- [Draw 的基本流程]
- [自定义 View]
-
[进程]
- [进程生命周期]
- [多进程]
- [进程存活]
- [OOM_ADJ]
- [进程被杀情况]
- [进程保活方案]
-
[Parcelable 接口]
- [使用示例]
- [方法说明]
- [Parcelable 与 Serializable 对比]
-
[IPC]
- [IPC方式]
- [Binder]
- [流程]
- [AIDL 通信]
- [Messenger]
-
[Window / WindowManager]
- [Window 概念与分类]
- [Window 的内部机制]
- [Window 的创建过程]
- [Activity 的 Window 创建过程]
- [Dialog 的 Window 创建过程]
- [Toast 的 Window 创建过程]
-
[Bitmap]
- [配置信息与压缩方式]
- [常用操作]
- [裁剪、缩放、旋转、移动]
- [保存与释放]
- [图片压缩]
- [BitmapFactory]
- [Bitmap创建流程]
- [Option类]
- [基本使用]
- [内存回收]
-
[屏幕适配]
- [单位]
- [头条适配方案]
- [刘海屏适配]
-
[Context]
-
[SharedPreferences]
- [获取方式]
- [getPreferences]
- [getDefaultSharedPreferences]
- [getSharedPreferences]
- [架构]
- [apply / commit]
- [注意]
- [获取方式]
-
[消息机制]
- [Handler 机制]
- [工作原理]
- [ThreadLocal]
- [MessageQueue]
- [Looper]
- [Handler]
-
[线程异步]
- [AsyncTask]
- [基本使用]
- [工作原理]
- [HandlerThread]
- [IntentService]
- [线程池]
- [AsyncTask]
-
[RecyclerView 优化]
-
[Webview]
-
[基本使用]
- [WebView]
- [WebSettings]
- [WebViewClient]
- [WebChromeClient]
-
[Webview 加载优化]
-
[内存泄漏]
-
-
[ART]
- [ART 功能]
- [预先 (AOT) 编译]
- [垃圾回收优化]
- [开发和调试方面的优化]
- [ART GC]
- [ART 功能]
-
[Hook]
- [基本流程]
- [使用示例]
-
[Proguard]
- [规则]
- [公共模板]
- [常用的自定义混淆规则]
- [aar中增加独立的混淆配置]
- [检查混淆和追踪异常]
-
[架构]
- [MVC]
- [MVP]
- [MVVM]
-
[Jetpack]
- [架构]
- [使用示例]
-
[NDK 开发]
- [JNI 基础]
- [数据类型]
- [String 字符串函数操作]
- [常用 JNI 访问 Java 对象方法]
- [NDK 开发]
- [基础开发流程]
- [System.loadLibrary()]
- [CMake 构建 NDK 项目]
- [常用的 Android NDK 原生 API]
- [JNI 基础]
-
[类加载器]
-
[双亲委托模式]
-
[DexPathList]
......
由于篇幅原因在这里就不过多赘述了,需要更多资料的请点这里即可免费获取也可以加入互助交流裙Android技术交流,不仅可以免费获取资料,而且还能有一帮大佬为你摆平关于Android的技术问题~
-