2024年Android最新那些年被面试支配的恐惧:QQ音乐,腾讯,字节,阿里,Android事件体系全面总结+实践分析

推荐学习资料

  • 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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 25
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值