推荐学习资料
-
Android进阶学习全套手册
-
Android对标阿里P7学习视频
-
BAT TMD大厂Android高频面试题
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
- 也没面多久,当晚就凉了,然后我就改了简历(
字节
-
字节在我被捞之前面试体验极佳,被捞了之后的面试就开始了折磨
-
字节不会问你项目上的很多东西,相反他最看重的都是算法和你的逻辑能力、以及语言的了解深入程度
一二三面
-
项目相关:
-
自设计图片加载库要考虑什么?异步线程池、多级缓存、采样与编码、生命周期管理
-
OkHttp请求流程
-
自动登录实现?cookie与token
-
SP的内部实现
-
SP多进程不安全要怎么解决?(这个当时答的ContentProvider,但是面试官不满意,后面引导我mmap,然鹅我只知道个大概,没跟上思路,后面查了下发现腾讯的 MMKV 框架茅塞顿开
-
内存管理、mmap内存映射
-
加密算法MD5、SHA、DES、RSA、DSA
-
对称加密与非对称加密
-
动态代理与静态代理,区别
-
JVM内存模型
-
双亲委派机制,优点
-
自定义ClassLoader与系统类加载器加载出来的同个类文件是同一个类吗
-
Activity的页面栈与启动模式
-
Android的进程管理
算法:
-
最长公共字串:当时没刷过dp,直接暴力解的。。。
-
判断两个树的包含关系:双重dfs秒了
-
Linux 文件路径简化:一个简单的模拟问题,需要考虑的细节挺多的其实,一直被面试官引导着,害
视频架构 凉
-
算法:链表两数相加,最高位在前,要求时间O(n),空间O(1)
-
我的思路:翻转加完再翻转回来
-
LWP轻量级进程与线程,什么关系,懵
-
ReentrantLock内部实现,懵
-
各种锁与线程池
-
SP的缓存机制,内存同步和磁盘异步过程
阿里
一面面试官以为我已经毕业了,面到最后才发现我是校招的。。。整个面试过程极其痛苦
电话突击面 凉
-
View的绘制流程
-
MeasureSpec的AT_MOST和EXACTLY
-
wrap_content和match_parent在父子View的情况下对View大小的影响
-
View的事件分发
场景:滑动事件冲突处理 & 多个嵌入子View的onInterruptTouchEvent和onTouchEvent 返回true的各种场景(只涉及DOWN事件)
-
Handler原理,这个没深挖
-
泛型擦除,如何解决的
-
Retrofit是怎么处理接口的?动态代理、反射、注入
-
Retrofit泛型如何正确识别
-
Retrofit动态代理
美团
一面
全是基础问题,上述的基本都涵盖了,面了一个半小时,问了面试官只有两轮技术面,很是开心,然后顺利通过
-
线程池使用?构造参数、内部实现
-
CAS、自旋,与传统锁性能差异
算法:
两数组按顺序合并,就是归并排序的merge过程,要求原数组修改
二面 凉
画风奇特,面试官只问我没学过或者完全没了解的东西,最后得出结论我基础极差
-
只有这一次面试没有自我介绍。。。
-
说说你学过什么课,计网、数据结构、c++(我说的是基本都忘了,但是大一学过)
-
常用的数据结构
-
c++ 中全局static变量和局部static变量
-
编译过程(预处理、编译、汇编、链接,当时根本不会)
-
程序启动到运行的整个过程(不是很get到,从操作系统内存管理说的)
-
gcc、makefile
-
Linux常用命令,说了几个但是感觉面试官很不满意
-
git 如何回滚(我说了git revert,实际是git reset)
-
git revert是怎么做的,有什么问题
-
git merge和rebase区别
-
还知道哪些混合开发技术,大前端的东西,我说了知道Flutter
-
那Flutter中StatefulWidget和StatelessWidget的区别呢?(我都懵了,我只是知道有这么个东西啊,不至于问我这些吧…
算法:忘了是啥了,不过当时已经被问的头脑发晕了,暴力解的,面试官说我代码可读性极差[捂脸]
bigo
三轮面试都体验极佳!面试官都全程笑嘻嘻的,遇到不是很明白的也在耐心的引导你,感觉对自家产品认同度还很高的
一面
-
LinkedList与ArrayList
-
HashMap
-
各种锁:sync/lock、可重入锁、自旋锁&CAS
-
锁升级过程:重量级锁、轻量级锁、偏向锁
-
concurrent包:屏障、计数器、信号量、阻塞队列
-
View 事件分发
-
View 绘制过程
-
如何自定义View
算法:
写一个归并排序,拿递归写的,写了10多分钟
二面
全程做题,一共三道
两两交换链表的节点,lc原题,面试前两周做过,我的思路是翻转连接(类似于k个一组节点翻转交换的特殊情况)但是自己写好后有些bug,在面试官引导后越来越乱,40分钟后不了了之。。。
智力题
汉诺塔1:3个柱子ABC,从A到C需要多少步,f(n)=2f(n-1) + 1
汉诺塔2:同样3个柱子,但是每次只能移动到相邻柱子,A到C多少步,f(n)=3f(n-1)+2
我面完以为已经凉透了,没想到第二天hr就打电话约三面时间了,我想可能是智力题答的好?还真挺有缘的
三面
简单介绍下项目
本科学过哪些课(一听到这个问题我马上就怂了,不敢乱说,美团的教训太惨烈了)
-
计网大杂烩(还好我学过这门课,都能说个大概)
-
UDP请求整个流程,从运输层说到物理层
-
MAC地址有什么作用(有点记不住了,链路层、物理地址相关、标识网卡
-
网络层IP协议,路由表如何得到(网关协议RIP、BGP、OSPF)
-
UDP与TCP区别
写在最后
本次我的分享也接近尾声了,感谢你们在百忙中花上一下午来这里聆听我的宣讲,希望在接下来的日子,我们共同成长,一起进步!!!
最后放上一个大概的Android学习方向及思路(详细的内容太多了~),提供给大家:
对于程序员来说,要学习的知识内容、技术有太多太多,这里就先放上一部分,其他的内容有机会在后面的文章向大家呈现出来,不过我自己所有的学习资料都整理成了一个文档,一直在不断学习,希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!
为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!
Android架构师之路很漫长,一起共勉吧!
如果你觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言,一定会认真查询,修正不足,谢谢。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!