许愿bigo,一些大厂的客户端面经总结

先介绍一下大致情况,双一流非科班本科出身,大学期间就自学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生命周期通信

线程池的清理过程

#面经##校招##腾讯##字节跳动##美团##安卓工程师#
全部评论
点赞 回复
分享
发布于 2020-10-24 21:40
春招专场
校招火热招聘中
官网直投
华工大佬
点赞 回复
分享
发布于 2020-10-24 22:42

相关推荐

6 41 评论
分享
牛客网
牛客企业服务