背景
菜 J 一枚,本硕都是计算机(普通二本),2021 届应届硕士,软件测试方向。个人也比较喜欢看书,技术书之类的都有看,最后下面也会推荐一些经典书籍。
先说一下春招结果:拿下了四个大厂的 offer:字节、华为、B 站、滴滴的 offer。
拒了快手、美团、小米的二面面试邀约,都是因为 base 不是自己的意向地,所以拒掉了。
最终选择了和我价值观最符合的字节,定级 2-2。
Android岗位面试经历
字节跳动一面
自我介绍
介绍下Android的mvc/mvp/mvvm
view的事件分发机制
viewGroup 怎么知道view有没有消费事件
写一个单例模式(解释单例模式中的sync,双锁,volidate)
算法题目:
有A和B两个有序数组(数组元素不重复),给出sum,请找到A和B中所有相加和为sum的序列对(面头条遇到的)
A:[1,4,5]
B:[3,4,6]
sum=8
output 1,1,2,0 => because A[1]+B[1]=8 /A[2]+B[0]=8
内存泄漏有哪些?怎么排查
闲聊
之后就问了我最近看了哪本书,学到了什么,最近还在学的什么技术呢?问了我职业规划,兴趣爱好,还说了说公司的语言选型,我后来问了下对于我的面试表现评价,人家不方便说,又问了新人培养等问题。
字节跳动二面
自我介绍
你遇到最难的问题是什么
android的handler机制
android的anr机制
android冷启动优化
android弱网优化
android 视频相关有了解么?
android长图片加载怎么实现
gradle用过哪些
最近看什么书?
职业规划是什么?
能接受在北京工作?
算法题目:排序二叉树转有序双链表,要求在原来的树节点基础上增加。
字节跳动三面
这个面试官应该是一个总监级别的,说话非常的硬气,肯定是一个资深大佬,一共面了40多分钟。常规的面试基础都没问,纯怼项目和算法了。
volite的关键字,干了什么(什么叫指令重排)
生产者消费者(非阻塞式)
怎样获取当前线程是否是主线程
怎样检测函数执行是否卡顿
常用的对称加密算法,有什么同
view分发反向制约的方法
两个线程用不同的对象,怎么养
乐观锁使用
hashmap底层原理
arraylist底层原理
webview如何做资源缓存
hashmap扩容
一张图片100*100的图片在内存中的大小
项目里面的难点(如何解决,解决方案是什么)
一个app发布一个版本后,发现变卡了,你如何复现?如何得知某个地方变卡,如何得知用户在某行代码变卡
android 动画机制有哪些?
lottie的原理
直播中的动画要怎么做?要做成动态的,比如礼物是可以配置的?
算法题:找出数组中的k数。k数的定义:比位置位于这个数前面的数字都大,且比位置位于这个数后面的数字都小的数字(数组首尾的数字不用管)(面头条遇到的)
[4,1,3,2,7,9,8,10,12]
此数组中的k数为7和10
字节跳动四面
HR面,大约35分钟,主要是问个人职业规划、薪资待遇,以及对字节跳动的期许等等…
我是如何准备面试的?
1、准备简历(敲门砖,最为致命)
简历一定要多下功夫,尤其是对一些字眼要再三斟酌,如“精通、熟悉、了解”的区别一定要区分清楚,否则就是在给自己挖坑。不知道怎么写简历,可以参考下面这些优秀的样板简历:
2、梳理知识体系,学会举一反三
通常是根据大厂面试考点以及对应的要求来梳理自己接下来的学习及发展路线图。
之后,就需要根据路线图上的重点去进行有针对性的学习,学会举一反三,做笔记总结。
《Android开发全栈工程师》
3、刷面试题
刷题的重要性,我想不用多说。
一方面能够快速对某个技术点理解,另一方面,有一定几率被问到原题,面试前刷题增强自信心
我能拿下大厂 offer 都归功于这份【Android 面试笔记】,这份笔记包含多家中小厂,比如像阿里、百度、字节、腾讯、京东这些大厂的面试真题(含答案),熬夜啃完之后,感觉收获颇多
那么这份软件测试面试笔记的内容都有什么呢?
接下来,我来为大家展示目录内容
第一部分:Java方面
第二部分:Android方面
第三部分:音视频
第四部分:Flutter
第五部分:算法
第六部分:Android Framework
第七部分:企业常见174道面试题
第一章 Java方面
- 第一节 Java基础
- 第二节 Java集合
- 第三节 Java多线程
- 第四节 Java虚拟机
第二章 Android 方面
- 第一节 Android 四大组件相关
- 第二节 Android 异步任务和消息机制
- 第三节 Android UI 绘制相关
- 第四节 Android 性能调优相关
- 第五节 Android 中的 IPC
- 第六节 Android 系统 SDK 相关
- 第七节 第三方框架分析
- 第八节 综合技术
- 第九节 数据结构方面
- 第十节 设计模式
- 第十一节 计算机网络方面
- 第十二节 Kotlin方面
第三章 音视频开发高频面试题
- 为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?
- 怎么做到直播秒开优化?
- 直方图在图像处理里面最重要的作用是什么?
- 数字图像滤波有哪些方法?
- 图像可以提取的特征有哪些?
- …
第四章 Flutter高频面试题
-
第一节 Dart部分
- Dart 语言的特性?
- Dart的一些重要概念?
- dart是值传递还是引用传递?
- Dart 多任务如何并行的?
- 说一下 mixin?
- …
-
第二节 Flutter 部分
- Flutter 特性有哪些?
- Flutter 中的生命周期
- Widget 和 element 和 RenderObject 之间的关系?
- mixin extends implement 之间的关系?
- Flutter 和 Dart的关系是什么?
- …
第五章 算法高频面试题
- 如何⾼效寻找素数
- 如何运⽤⼆分查找算法
- 如何⾼效解决接⾬⽔问题
- 如何去除有序数组的重复元素
- 如何⾼效进⾏模幂运算
- …
第六章 Android Framework方面
- 第一节 系统启动流程面试题解析
- 第二节 Binder面试题解析
- 第三节 Handler面试题解析
- 第四节 AMS面试题解析
- …
第七章 企业常见174道面试题
- 1.SD卡
- 2.android的数据存储方式
- 3.BroadcastReceiver
- 4.sp频繁操作会有什么后果?sp能存多少数据?
- 5.dvm与jvm的区别
- 6.ART
- 7.Activity的生命周期
- 8.Application能不能启动Activity
- 9.Activity的状态都有哪些
- 10.横竖屏切换时Activity的生命周期
- …
最后
整份文档一共有将近 1700+ 页,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!