网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
8月10日,跟B站的HR进行了第一次通话,了解完公司的业务、技术、团队规模等情况后、就跟HR约了一面,面试时间是在11号下午,11号,我到了B站在杨浦的国正中心3号楼,在一楼大厅的机器人旁边等HR下来接我。然后HR带我到楼上面试会议室,先给了我两份试题,一份技术的,一份类似公务员行策考试的试题。
技术面的试题一共有10个,全是简答题。考了JVM、悲观锁、Android的四大组件、View的事件分发,Eventbus,Http2.0、NDK、设计模式、最后用了一个算法题压轴,总体感觉回答的还行,就是源码那个模块回答的不是太好。以后还要多看看源码之类的复习书籍。
第二面
一面过后,HR让我回去等消息,终于在16号的晚上来了电话约二面,问我17号上午有没有时间,我答应二面时间后,便在17号上午来到B站的总部开始了第二轮面试。
这次走出来的是一个架构师和一个部门经理,问的问题还是比较简单,但是唯一不同的是比一面的问题做了延伸。总结下来差不多是JVM、翻转链表、hashmap、屏幕适配、双亲委托模式、Jetpack、Fragment、Handler、内存优化、动画机制二面延伸的问题有一个没有接触过,没有回答出来。一样回去等通
第三面
等了一星期,当我以为要凉了时,结果在26号上午HR又给我来了电话,说下午的三面。命运总是爱捉弄人,总把一些原理上不可能的事情进行反转。三面的时候那个HR来了,跟她一起的还有一个级别较高的面试官(也就是我后来大部门的领导),问了我:音视频开发有过了解吗?我说有过了解,但是不是特别熟悉,中途还聊了一些职业规划、个人以后发展的想法。
和大领导聊完后,HR最后一面,跟我谈薪资了,想压价了!!!这是要成了吗?我心里嘀咕,感觉面试的一般啊。结束后,让我回去时说是等下周给通知。
到了7.30上午,,B站的HR说面试通过了,和我说了薪资是26K,比我预期的少了3K,但是也还能接受,也就同意了!过了半个小时,邮件便下来了!
B站面试总体感觉还是挺不错,没有问到非常底层的、但是面试的广度还是有的。感觉面试官很喜欢问JVM、还有一个音视频,基本三面的问题大部分都是音视频开发有关、以后还有加强音视频的学习呀!
哔哩哔哩—Android面经
一面
-
说说自己的做过项目
-
描述一下JVM加载class文件的原理机制?
-
解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法
-
悲观锁的使用场景
-
Activity A启动另一个Activity B会回调哪些方法?如果Activity B是完全透明呢?如果启动的是一个Dialog呢?
-
描述一下view事件的分发机制
-
简述一下多路复用的原理
-
解释一下 JNI 中全局引用和局部引用的区别和使用
-
单例如何防止反射漏洞攻击
-
简述EventBus的基本使用
-
输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32, 321},则输出这两个能排成的最小数字32132。
二面
-
在项目过程中,你出现过什么问题?
-
JVM的永久代中会发生垃圾回收么?
-
给出一个单链表(不带头节点)和一个数K,请翻转此单链表?
-
HashMap的扩容方式?负载因子是多少?为什是这么多?
-
今日头条的轻量级适配方案了解吗 & 给我说说原理
-
多线程的情况下,类的加载为什么不会出现重复加载的情况?
-
Jetpack Lifecycle是用来干啥?
-
谈谈Fragment3种切换的方式以及区别 & 使用场景
-
Handler导致的内存泄露你是如何解决的?
-
给我谈谈插值器 & 估值器 的作用
-
说说Activity & BroadcastReceiver & Serice最长可耗时时间为多少?
三面
-
你知道无论是Kotlin或者是Java,程序运行的主要入口都是main()方法,那么Android的main方法在哪里?
-
谈谈Android系统安装apk的过程?
-
为什么子线程不能更新UI?
-
对音视频开发有过了解吗?
-
常见的数字音频编码文件格式有哪些,并简述其特点
-
列举一些音频编解码常用的实现方案
-
预测编码的基本原理是什么
-
请叙述MPEG视频基本码流结构
-
请叙述AMR基本码流结构
1、理论知识的梳理
因为面试时考验你原理性的知识,虽然我在腾讯工作了两年,但是毕竟是工作,很多理论知识都忘的一干二净,于是去面试前,我利用收集来的字节大牛的面试笔记给自己做了一次完整的知识梳理。
(个人建议:去面试之前,给自己做一次完整的知识梳理是很有必要的,不仅加深了对理论知识的认知,还可以从中知晓自己对哪一模块的不了解,加深学习)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!