- 算法题:字符串中出现频率中位数;最长公共子串问题LCS
- 项目:OKHTTP框架
- 计算机网络:TCP UDP HTTP区别;TCP滑动窗口;用UDP实现TCP
- 数据库:三大范式;索引,怎么知道命中索引
- 操作系统:进程间通讯方式;共享内存原理
腾讯二面
- 项目:项目介绍;内存泄漏
- Android:OKHTTP 对HTTP与HTTPs之间的区别;HTTPs加密原理;BlueboothAdapter;Activity在AndroidManifest.xml文件中有哪些标志位,CLEAR_TOP模式,singleTop和singleTask分别的使用场景;Android存储(文件,SP,数据库[具体介绍下SQLite]);Android虚拟机与Java虚拟机之间区别
- Java:深拷贝 浅拷贝(内存溢出or垃圾回收时有什么区别?);多线程模型
- 数据结构:二叉树;B树(插入/删除过程)
##字节
字节面试比较注重基础,包括在线写题,数据结构,Java基础,JVM基础,操作系统等;以下包括3面。
字节面试是一天内走完所有技术面试流程,每一面结束后如果通过则15min左右就开始下一轮面试,全部为视频面试。
字节一面
- 项目:介绍项目
- Java:深拷贝/浅拷贝,怎么实现深-浅拷贝,CopyonWrite;Java内存(分配->回收的详细过程)
- 网络:TCP挥手,第三次不挥手会怎么样;HTTPs加密的解释,对称/非对称加密
- 算法:数组A,数组B,计算A-B;0-n之间所有质数(可以先求所有合数)
字节二面
- Java:线程同步问题(为什么需要同步&怎么实现同步)
- 设计模式:单例模式(静态内部类);其他设计模式简介
- 数据结构:排序算法,归并/快排(实现原理/平均复杂度/能否提前结束/谁性能更优),
堆排(怎么实现调整堆结构/k个最大的数); - 算法题:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组
字节三面
- 自我介绍:学过的专业课程;看过哪些计算机专业书
- 操作系统:内存分配区域(Java层面回答,对象引用在堆和栈都有么?函数内部new的对象存放在哪?);用户态/内核态;中断是什么
- 网络:计算机网络有哪几层,分别对应什么协议;IP/TCP传输的都是什么数据;DNS是什么,有什么作用
百度
百度是现场面试,一共三面没有HR面,第三面是总监面,兼顾技术面与非技术面试,百度的面试官都比较友好,一面技术问的比较细,二面重项目,三面是聊天居多。
从百度开始就没有拍照片记录了,经历前面几次面试后,心境淡定了很多
百度一面
- 项目:项目介绍;项目中的编码规范
- Android:Android四大组件安全性;Activity启动模式;IntentFilter匹配规则,action和category区别;Handler阻塞为什么不卡死;事件分发机制,onTouchEvent返回false处理流程, dispatchTouchEvent返回false处理流程;Looper是什么;对象池,手写对象池实现;ContentProvider原理;sp支持跨进程么,怎么解决跨进程,怎么实现进程同步;
帧动画实现: 100张图,200ms显示一张,读取一张图要400ms,怎么解决避免卡顿;Bitmap内存复用限制条件 - 操作系统:线程时间片分配原理
百度二面
- 项目:梳理项目;项目难点;项目中技术框架
- 算法题:手写二分法;电梯状态机设计
- 其他:优缺点;专业
百度三面
- 算法题:最长公共子串
- Android:ART虚拟机类加载机制;okhttp原理;热修复原理
- 其余闲聊:优点缺点;大学遗憾;作为班长组织了哪些活动;长期坚持的事情;专业去向
##美团
美团面试是现场一天面完,技术面试一共两轮,最后有一轮HR面试,回忆起来似乎问的问题不是特别多,但都比较开放,聊的比较深入,技术一面直接打开美团APP聊相关页面设计实现,这种方式还是比较新颖的,二面则是聊项目比较多,问很多项目中具体实现细节。
- 项目:实习项目;项目最难点;项目中技术选择;阿里云对象存储OSS的STS凭证设计
- Android:Lint工具是编译期的吗,原理;美团首页设计具体实现;
RecyclerView多Item的难点;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
最后
感谢您的阅读,在文末给大家准备一个福利。本人从事Android开发已经有十余年,算是一名资深的移动开发架构师了吧。根据我的观察发现,对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。
所以在此将我十年载,从萌新小白一步步成长为Android移动开发架构师的学习笔记,从Android四大组件到手写实现一个架构设计,我都有一一的对应笔记为你讲解。
当然我也为你们整理好了百度、阿里、腾讯、字节跳动等等互联网超级大厂的历年面试真题集锦。这也是我这些年来养成的习惯,一定要学会把好的东西,归纳整理,然后系统的消化吸收,这样才能极大的提高学习效率和成长进阶。碎片、零散化的东西,我觉得最没有价值的。就好比你给我一张扑克牌,我只会觉得它是一张废纸,但如果你给我一副扑克牌,它便有了它的价值。这和我们收集资料就要收集那些系统化的,是一个道理。
最后,赠与大家一句诗,共勉!
不驰于空想,不骛于虚声。不忘初心,方得始终。
本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算