先介绍一下大致情况,双一流非科班本科出身,大学期间就自学Java、Android相关东西,也跟着老师做了一个项目,说大其实也不大,就简历上能写上的程度吧。春招没怎么准备被怼到怀疑人生,当时发誓秋招竭尽全力,但是直到两个月前才买了操作系统、JVM 这类的书开始系统学习有关内容,也刷了lc 200+题
我大概从八月初开始准备秋招,但是因为期末考试,九月初才投了第一份简历,自己也挺后悔投的挺晚的,有一些投了根本就没反应。前几天bigo hr面,让我终于看到了曙光,现在还有几家还在流程中,但是真的已经不想面下去了,太疲惫了。不管怎么样先写些面经攒攒人品吧,顺便许愿一下bigo
有些面试太久远了很多有些记不住了,就把想到的写一写~
腾讯
不自量力投的QQ音乐,然后直接被手Q客户端捞了
一面 电话面
秋招处女面,体验极佳!
项目相关:
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的进程管理
算法:
最长公共字串:当时没刷过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区别
如果丢包,UDP快还是TCP快,为什么?UDP 我结合滑动窗口具体过程和三握四挥说的
最后写了个生产者消费者模型,好久没写过了其实
一开始甚至没考虑死循环、也没考虑到多个生产者消费者的情况,后来在面试官不断引导下改好了的,主要两大点:notifyAll和while内挂起,因为vscode出了点问题,wait的异常处理也没有写。。。
反问:
我问了下内部的技术氛围,面试官说的很认真,也说了在这里能学到很多,给我感觉很棒
同时我也问了下学习建议,面试官说的很诚恳,叫我现在多看看操作系统这些基础书籍,虽然实际工作用不到,但是一旦要想突破,操作系统的很多思想都是可以借鉴的;同时他还说leetcode刷一刷培养一下思维其实就足够了这些
面完一小时就收到hr电话了,约的晚上面试!
hr面
三轮面试体验
期望工作城市
期望薪资(懵了,之前没怎么了解过,说了个数hr都觉得太低无语了)
还有哪些offer哪些在流程中
觉得bigo吸引你的地方
反问:问了下福利和bigo未来的发展策略
感觉hr对自家公司认同感很高,最后和我说了十分钟公司的发展、福利相关的,后面还微信发给我公司的整体介绍,感觉我整个人都已经是bigo的形状了
CVTE
一面 电话突击面
超多基础问题略
onPause的调用时机
安卓应用启动流程
AMS如何与Activity生命周期通信
线程池的清理过程
全部评论
(3) 回帖