双非渣本小Android四年磨一剑,秋招大厂(字节、腾讯、B站)面经分享

前言

笔者2016年双非不知名小本科毕业,到今年6月已经开发4年啦,毕业后一直辗转于各种小公司做小开发。但是闲鱼也有翻身梦,一直想去大厂康康。就蹭蹭,不进去也行啊。于是计划几年年初金三银四的时候去碰碰运气,正巧碰上疫情,计划也就被搁置了。一来是怕死。出门都战战兢兢的,别说各个城市跑面试了。二是各种公司都在裁员,只有大厂还在招少部分人,大厂的门槛怕是都要被踩烂了。

疫情稳定下来后,便开始慢慢的为跳槽做准备了,到金九银十的时候,先去面了些不大不小的公司,最后才选择了几家心仪的大厂投简历、面试的,前段时间成功入职了腾讯,将自己的面试经验分享出来,希望可以给大家做个参考、有所帮助。

简历

首先是简历,一般找一个模板,写清楚掌握的技能和自己的项目经历即可。

简历建议2页就行,太长太短都不好。

建议用掌握与熟练掌握取代了解与精通。

这里教给大家一个小套路,可以提高收到面试邀请的机会。那就是在你简历的左上角印上准备面试公司的Logo。面试官在一堆简历中突然翻到一张印着自己公司Logo的简历,不免会多看你的几眼。

关于算法

算法可以说是现在找工作必须的知识储备,具体得看公司的业务。以我的面试经验来看,总体来说问的不多,还有些公司基本不问算法。

但是如果去面试字节,网易,快手这种每轮必问算法的公司,因为算法题拿不到offer就很可惜了。

算法题就好像高考语文的古诗词默写一样,分不多,但丢了就很可惜了。

主要还是平时力扣的刷题积累

面经

接下来就是各公司的面经了,分享出来供大家参考。

上海哔哩哔哩(B站)

第一个去的是我一直心心念念的B站,可以第二轮就挂掉了...

B站一面

1.自我介绍
2.treemap、红黑树、完全平衡二叉树
3.快速排序和插入排序
4.个大致有序的数组如何排序,最快时间复杂度
5.如何自定义实现一个FlexLayout
6.RecyclerView的回收复用机制
7.如何实现RecyclerView的局部更新
8.说说对泛型的了解,Retrofit中的泛型是怎么解析的
9.说说对binder机制的了解
10.进程的状态,线程的状态,两者有区别吗
11.synchronized锁住对象的理解
12.Fragment replace生命周期变化
13.TCP和UDP有什么区别? 讲讲招手挥手过程
14.用过C++开发吗
15.Dalvik和Hotspot虚拟机了解吗?有什么区别?

B站二面

1.说自己做过最满意的项目
2.性能优化你做过哪些工作
3.屏幕适配做过哪些工作
4.遇到过哪些坑(困难点),是怎么解决的
5.如果要你来开发B站的一个页面,哪一个页面可以很快入手
6.用过哪些框架?MVVM?Jetpack有入手吗?
7.用过哪些开源库
6.热修复、插件化都用过,遇到过哪些坑?可以讲讲原理吗
7.为什么想来B站,看哪种视频多一点,点赞多还是白嫖多
8.你觉得B站APP有哪些可以优化的地方

斗鱼直播

斗鱼一面

1.Java多态的理解
2.HashMap原理
3.手写一个单例模式,问有什么优缺点
4.View的绘制流程
5.APP的启动过程
6.说说插件化的原理,资源的插件化id重复如何解决?
7.Recyclerview优化
8.Handler消息机制
9.用过哪些第三方库,OKHTTP原理说一下,热修复原理呢?
10.对屏幕刷新机制的了解,双重缓冲,三重缓冲,黄油模型
11.onCreate,onResume,onStart里面,什么地方可以获得宽高
12.为什么要用线程池(扯到线程分配资源的过程,和进程分配资源过程的区别)
13.GC内核清理用什么算法,老年代有什么算法?
14.TCP 三次握手四次挥手,第一次和第三次如果没收到回应会怎样?
15.MVP和MVVM有什么区别,那种用的多

字节跳动

字节一面

0.算法有点题比较复杂,记不起来了
1.构造方法有哪些?重载与重写的区别?
2.线程有哪些状态?
3.WebView安全问题,做过WebView性能优化吗
4.RecyclerView 缓存结构
5.RecyclerView回收复用机制,回收什么?复用什么?回收到哪里去,复用从哪里拿?
6.Handler休眠是怎样的?epoll的原理是什么?如何实现延时消息,如果移除一个延时消息会解除休眠吗?
7.手势操作ActionCancel后怎么取消
8.熟悉AIDL?支持哪些数据类型?说说oneway的作用?怎么理解单向调用?
9.说说https怎么防止被抓包吧

腾讯(offer)

腾讯技术面

1.介绍一下你们项目的架构
2.Rxjava是怎么实现线程切换的
3.Rxjava自定义操作符
4.ARouter的原理
5.ARouter怎么实现接口调用
6.ARouter怎么实现页面拦截
7.MVP怎么处理内存泄漏
8.OkHttp怎么实现连接池
9.如果让你来实现一个网络框架,你会考虑什么
10.你做过什么性能优化的工作
11.热修复的原理,资源的热修复的原理,会不会有资源冲突的问题
12.ViewPager中嵌套ViewPager怎么处理滑动冲突
13.android源码中有哪些设计模式
14.说说binder机制的原理
15.retrofit怎么做post请求
16.界面优化的一些方法,ConstraintLayout实现三等分,ConstraintLayout动画.
17.synchronize用法,volatile用法,两者的区别和场景
18.做过进程保活吗?
19.App 是如何沙箱化,为什么要这么做?
20.讲讲 bindService 的过程,你当初是怎么优化后台服务进程的?
21.弱网环境你如何做的网络优化?
22.ConcurrentHashMap 的实现原理
23.Kotlin协成
24.flutter有上手过吗
25.MVP与MVVM有什么区别
26.反问

腾讯hr面

1.为什么考虑换一份工作?
2.在你们公司这几年感觉怎么样?
3.在这几年里,你有做过什么觉得最有价值的工作
4.对腾讯的印象是怎样的
5.有女朋友吗,对搬来深圳什么想法....
6.你有什么要问我的吗?目前有几个offer,倾向性是怎样的?

复习资料:

这份资料我从春招开始,就会将各博客、论坛。网站上等优质的Android开发中高级面试题收集起来,然后全网寻找最优的解答方案。每一道面试题都是百分百的大厂面经真题+最优解答。包知识脉络 + 诸多细节。
节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
给文章留个小赞,就可以免费领取啦~

戳我领取:Android对线暴打面试指南超硬核Android面试知识笔记3000页Android开发者架构师核心知识笔记

《960全网最全Android开发笔记》

《1307页Android开发面试宝典》

包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。

《507页Android开发相关源码解析》

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

腾讯、字节跳动、阿里、百度等BAT大厂 2019-2020面试真题解析

资料已经上传在我的GitHub,无偿分享给大家。

文末

我一直觉得技术面试不是考试,考前背背题,发给你一张考卷,答完交卷等通知。

首先,技术面试是一个 认识自己 的过程,知道自己和外面世界的差距。

更重要的是,技术面试是一个双向了解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他以后可能就是你的同事或者领导,所以,面试官问你有什么问题的时候,不要说没有了,要去试图了解他的工作内容、了解这个团队的氛围。

找工作无非就是看三点:和什么人、做什么事、给多少钱,要给这三者在自己的心里划分一个比例。

最后,祝愿大家在这并不友好的环境下都能找到自己心仪的归宿!

posted @ 2020-10-22 22:24  Button123  阅读(189)  评论(0编辑  收藏  举报