-
一级缓存和二级缓存的区别
-
LayoutManager原理
-
绘制
-
onMeasure描述一下
-
onDraw描述一下
-
invalidate一定会调用onDraw么
-
事件分发
-
事件是由谁分发的
-
fragment
-
销毁与恢复
-
与Activity的通信
-
Activity
-
Activity的生命周期
-
销毁与恢复
-
国际化插件
-
hashmap
-
2^n的原因(有多个原因)
-
扩容
-
22反转链表
二面
-
协程原理
-
rxjava原理
-
leakcanary
-
如何分析引用链
-
线程池
-
给你一堆数据,如何画曲线?
-
事件分发
-
责任链模式
-
汽车加油问题
三面
-
有序无序时删除链表的重复节点
-
都删除
-
保留一个
-
如何实现快手和抖音的整屏滑动效果
-
如何让运营能看懂社区文章
-
项目中的难点(问得很细)比如有没有遇到什呢难点呀
一面
-
线程池原理,几个参数
-
线程池里面的阻塞队列是什么类型
-
设计模式
-
状态模式和策略模式的区别
-
sleep和wait的区别
-
android序列化
-
Parcelable与Serializable
-
Handler
-
Hashmap
-
深拷贝与浅拷贝
-
如何实现深拷贝
-
sync和Reenterlock
-
遇到异常的区别
-
可重入锁和不可重入锁
-
funA,funB,funC,funD
-
postInvalidate和Invalidate的区别
-
requestLayout
-
两个有序链表合并
-
anr 分类及原理
二面
- 基本都是问的项目
一面
-
项目
-
viewmodel原理
-
用了哪些jetpack的东西
-
livedata为何具有生命周期感知能力
二面
-
shareperference如何保证线程安全,
-
为什么不是进程安全的
-
如何实现进程安全的
-
viewmodel是如何解决内存泄漏问题的?能解决么
-
mmkv共享内存和binder的区别
-
magic ocr项目
-
有做过多线程开发么
-
room如何实现orm的
-
kotlin和java产物一样么有
-
各种图片格式的区别
-
如何保证内存与文件的同步
-
开一个线程commit,commit不用加锁么?
-
bitmap
-
怎么确定bitmap被复用了
-
一张图片占用的内存大小
说来也挺惋惜的,前三家公司都是到了二面甚至是三面才挂掉,如果是一面就挂掉我也不用花那么多时间去煎熬、等待结果,只怪自己自视过高,在一家公司做久了对自己的能力没有一个正确的认知。
之后我开始猛刷大厂的面试题,在朋友的内推下收到了字节的面试题通知,又把字节近几年的面试题都翻出来刷了个遍,终于在四轮技术面+一轮HR面后收到了offer。下面是字节面经:
一面
-
MVC,MMVM,MVP
-
MMVM如何解决MVP中存在的问题
-
内存泄漏
-
内存泄漏的几种情况
-
LeakCancary分析内存泄漏的原理
-
手写单例模式,并分析
-
算法
-
找到两个数组中的两个元素的和等于某个值
二面
-
activity
-
onSaveInstance
-
service
-
StartService和BindService的生命周期
-
求浮点数的平方根
-
Binder的原理
-
设计模式
-
工厂模式
-
抽象工厂模式和普通工厂模式
-
建造者模式
-
启动模式有几种
-
共享内存原理
-
java能实现共享内存么
-
kotlin协程的四个dispatcher及区别
三面
- window,decorview,ViewRootImpl的关系
面试官 想让你回答如何window和windowManager如何联系的。viewRootImpl是联系window和decorview的纽带
-
进程间的通信方式
-
AIDL的用法
-
用法和原理
-
事件分发
-
onIntercept在哪用
-
事件分发底层的产生
-
RecycleView的用法
-
里面的各种Manager作用
-
wake lock:使屏幕常亮
-
Activity是如何被限制到状态栏和导航栏之下的
-
canvas
-
canvas的save和restore的作用
-
canvas的density有什么作用
-
vsync
-
vsync是如何生成的
-
android中异步一般怎么实现
-
android中内存泄漏发生的情况
-
如何去获取view的宽高
-
悬浮窗
-
如何实现一个悬浮窗
-
一个悬浮窗悬浮在顶层,覆盖了底层的app的启动图标,如果让事件启动图标接收到click事件
-
Android M之前与之后的权限变化
-
ContentProvider
-
使用
-
如何找到该contentProvider的
-
RxJava中map和flatmap的区别
-
view的绘制
-
viewgroup是如何刷新的
-
onMeasure,onlayout,onDraw分别起什么作用
-
onLayout的时候可以layout自己么?
-
AndroidManifest
-
和的区别
一个是系统的权限,一个是自定义的权限
四面
-
两道算法
-
洗牌问题
-
接雨水
-
两道设计
-
面向对象原则
-
用代码描述你觉得最有设计感的项目
后面就是HR面了,我就省略了,相信这些大厂HR面试都不会有太大的差别。
我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、 丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!
面试官通常会问一些开放性的问题,对你的思维拓展能力、多方位的思考能力也是一种考验
永远不要打无准备之仗!早做准备,多做准备!
下面分享一下我之前刷过的面试题以及算法资料,希望能帮助到有心在技术这条道路上一路走到黑的朋友!
Java部分
-
操作系统相关
-
JDK&JVM&JRE
-
面向过程 & 面向对象
-
八大基本数据类型&引用类型
-
数组
-
Java异常
-
集合(容器)
-
线程
-
泛型
-
反射
-
注解
-
Socket编程
-
设计模式
-
JVM相关
Android部分
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

总结
写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个关于Flutter的学习思路及方向,从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。
由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的
还有高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
5%以上Android开发知识点,真正体系化!**
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

总结
写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个关于Flutter的学习思路及方向,从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。
由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的
还有高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。
[外链图片转存中…(img-s0wWcQ04-1713448833041)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!