Android硕二面试阿里3面被P8架构师吊打,不甘!复盘狂啃底层技术,拿下阿里P6+offer

前言

人人都有大厂梦,对于程序员来说,BAT为首的一线互联网公司肯定是自己的心仪对象,毕竟能到这些大厂工作,不仅薪资高待遇好,而且能力技术都能够得到提升,最关键的是还能够给自己镀上一层金,让人瞻仰。

同样的,我自己的个人目标也是阿里,但之前一直在一家小公司,一呆就是好几年,现在通过不断学习和实践,提升了自己很多,也有了信心来阿里挑战。下面,就是我这次面试阿里P6的一些经历和心得。


阿里P6岗面试经历

这次阿里的面试经历实在太紧张+刺激+尴尬了,面试前还自信满满,面试后被吊打得怀疑人生。整个流程是四面,前两面还顺风顺水,比较嚣张,最后一轮技术面和HR面才让我领略到,什么是阿里?

不过好在面试最终还是顺利的,目前offer已经到手,给的薪资也比较满意,比上一份工作好多了。


阿里一面:

  • 自我介绍、说一下最近在做什么事?

  • Bitmap图片处理,下采样、编码、超大图片保证原图加载且如何防止OOM?

  • TCP、UDP

  • http、https SSL、CA

  • 滑动窗口、拥塞控制

  • 线程与进程

  • IPC进程间通信方式 Linux 5大方式 + Binder

  • Java多态怎么实现?多态内部原理?

  • Synchronized 和 Lock,区别?

  • sync方法和静态方法,锁住的内容

  • wait和sleep

  • HashMap 底层实现,1.7?1.8?

  • 安卓 ANR原因?如何判断?

  • 数据持久化&对比:SP、SQLite、File

  • 有什么想跟我沟通的吗?


阿里二面:

  • 自我介绍

  • 自设计图片加载库要考虑什么?异步线程池、多级缓存、采样与编码、生命周期管理

  • OkHttp请求流程

  • 自动登录实现?cookie与token

  • SP的内部实现

  • SP多进程不安全要怎么解决?(这个当时答的ContentProvider,但是面试官不满意,后面引导我mmap,然鹅我只知道个大概,没跟上思路,后面查了下 MMKV 框架茅塞顿开

  • 内存管理、mmap内存映射

  • 加密算法 MD5、SHA、DES、RSA、DSA

  • 对称加密与非对称加密

  • 动态代理与静态代理,区别

  • JVM内存模型

  • 双亲委派机制,优点

  • 自定义ClassLoader与系统类加载器加载出来的同个类文件是同一个类吗

  • Activity的页面栈与启动模式

  • Android的进程管理

  • 算法:

1.最长公共字串:当时没刷过dp,直接暴力解的。。。

2.判断两个树的包含关系:双重dfs秒了

3.Linux 文件路径简化

  • 智力题:你雇佣一个工人,他每天工作应该获得一份金条,你有一根金条可以分成 7 份,但你只能对你的金条切 2 刀,请问怎么保证你的工人每天都得到一份金条?

  • 你有什么想问我的?


阿里三面:

这一轮的面试官是个架构师,目测应该是P8,整个过程瑟瑟发抖

  • 你在项目中遇到哪些有挑战性的点?

  • 常用的数据结构

  • c++ 中全局static变量和局部static变量

  • 编译过程(预处理、编译、汇编、链接)

  • 程序启动到运行的整个过程

  • gcc、makefile

  • Linux常用命令

  • git 如何回滚

  • git revert是怎么做的,有什么问题

  • git merge和rebase区别

  • 还知道哪些混合开发技术,大前端的东西,我说了知道Flutter

  • 那Flutter中StatefulWidget和StatelessWidget的区别呢?


阿里HR面:

  • 三轮面试体验
  • 还有哪些offer哪些在流程中
  • 觉得阿里吸引你的地方
  • 怎么样协调关系?
  • 你和同事相处的情况怎么样,说说你帮助同事的一次经历?
  • 薪资

面试心得

关于这次面试阿里P6,只能说阿里是一个卧虎藏龙的地方,员工素质也非常高,待人也很友好,相信在阿里工作,会给自己带了很多收获。

最后,关于面试阿里,给出以下几点建议,希望能帮助到大家:

  1. 提前了解好阿里的企业文化。
  2. 阿里面试周期比较长,调整好心态,做好充分的准备。
  3. 在岗位上要体现出一定的企图心。
  4. 除了梳理技术积累和项目经验以外,还有对未来的业务开展有自己的思考和规划。
  5. HR面很专业,要体现自己有能力融入阿里的文化体系。

说在最后

现在很多程序员,都会陷入到一个怪圈:看到别人升职加薪,又觉得为啥别人运气总是那么好,我和他差不多时间进公司的啊!然后去跳槽,发现,现在的面试这么难的嘛,动不动就底层原理,动不动就源码分析,Android不好做了,做Android的人太多了,我还是转行吧。

归总到一点,就是没从自己思考,从身上找原因。无论对于程序员来说,还是对于其他岗位,想要涨薪升职,自己的能力肯定要跟得上,而唯一的办法就是通过学习来提升自己。

废话也不多说,我自己分享一下我自己的一套学习资料库,大伙看看有没有需要的:


以上这些学习资料都能够分享给小伙伴们,希望能一起努力,共同进步
有需要的,直接点击获取

猜你喜欢

转载自blog.csdn.net/ajsliu1233/article/details/110489209
今日推荐