在学校,专业学的算中上的水平,课本知识和老师讲的东西基本消化的八九不离十,也自己动手写过属于自己小项目APP,参与过一些社团协会和技能竞赛,与学长学姐一起共同开发的项目。
刚毕业时,b站也有校招,满腔热血的参加了,准备了好久,结果还是没有被录用。当时挺失落,但是也并没有放弃我进B站工作的梦想。
今年9月份的时候,以前社团学长知道我非常想进bilibili,特意告诉我B站有内推名额,问我要不要来试一下,我一口直接答应,然后把手上的工作辞掉了,破釜沉舟一把,宅家里半个月复习。将学工作3年的积累经验都系统的归纳整理了起来。再过一篇,然后就是刷题,找朋友模拟面试场景练习等等等。
世间所有的付出终是有回报的,努力的耕耘,也没有被辜负。从离职到入职,一个月时间,顺利的入职了哔哩哔哩,也是要感谢网友们提供的宝贵经验,所以整理了一下,把我的面经整理一下也分享出来给大家。
一面
1.自我介绍
2.应用启动流程,activity 启动流程,为什么要每个应用有一个自己的虚拟机,这个虚拟机和JVM的关系。
3.hashmap的基本原理
4.来说一说,在5.0以上和4.0加载dex时的方式有什么区别?
5.说一下你了解的Android虚拟机有哪些?
6.这两个虚拟机有什么区别吗?(上题说了ART虚拟机,dalvik虚拟机)
7.Handler持有Activity的引用会造成内存泄漏,那么如何避免?
8.ANR 的原理说一说
9.三次握手,四次挥手简单说下
10.okHttp的原理了解吗?使用时是如何对它封装的?
11.http和https什么区别?
12.算法题:双链表反转
二面
1.Acitivty的四种启动模式与特点。
2.广播使用的方式和场景以及广播的几种分类。
3.FrameLayout 、 LinearLayout 、 RelativeLayout 各自特点及绘制效率对比。
4.Android中的MVC、MVP模式。
5.App的启动过程。
6.Android怎么加速启动Activity。
7.Bitmap的四种属性,如何加载大图(inJustDecodeBounds)。
8.Touch事件分发机制和冲突处理。
9.Android IPC:Binder原理。
10.Class文件结构(常量池)。
11.Java内存模型结构(主内存和工作内存)及操作,原子性可见性和有序性等。
12.启动线程和安全的终止线程。(interrupt)
13.TCP可靠传输原理实现(滑动窗口)。
14.Cookie与Session的作用和原理。
15.Https加密原理。
三面
1、TCP/UDP的区别,有看过具体报文的信息吗
2、你觉得开发一个SDK,需要注意哪些地方,有没有做过SDK性能测试
建议
当我们出去找工作,或者准备找工作的时候,我们一定要想,我面试的目标是什么,我自己的技术栈有哪些,近期能掌握的有哪些,我的哪些短板 ,列出来,有计划的去完成,别看前两天掘金一些大佬在驳来驳去 ,他们的观点是他们的,不要因为他们的观点,膨胀了自己,影响自己的学习节奏。基础很大程度决定你自己技术层次的厚度,你再熟练框架也好,也会比你便宜的,性价比高的替代,很现实的问题但也要有危机意识,当我们年级大了,有哪些亮点,与比我们经历更旺盛的年轻小工程师,竞争。
-
无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,这四个字就是我的建议!!!!!!!!!
-
准备想说怎么样写简历,想象算了,我觉得,技术就是你最好的简历
-
我希望每一个努力生活的it工程师,都会得到自己想要的,因为我们很辛苦,我们应得的。
-
有什么问题想交流,欢迎给我私信,欢迎评论
【附】相关架构及资料
内含往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
opics/618156601)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!