"烤面经"!bilibili社招面经(已拿offer),可带劲了!
勇闯天涯做自己
2020年06月08日 21:14

唠唠嗑:

本渣渣双非末流一本毕业,工作三年多。高中就玩bilibili。无论是学习还是放松你都能在小破站找到自己想要的东西。本身对上海也很憧憬,于是去上海入职B站,可以说是我的梦想吧。

大学读的是软件技术专业,主学Android移动应用开发,辅修Java。男生对这种技术类的东西有着天生的兴趣,即好玩儿,又有挑战性,当自己把所有的Exception都干掉,把页面成功的运行出来是,那种成就感,特别满足。所以,在我的大学生涯里,我参加过社团协会各种APP的开发,也自己玩过跟多项目。

三年前毕业的时候,哔哩哔哩也是有校招的,我当然满怀期待的投了简历。得到了面试机会,但却在第一轮面试中就挂掉了。如今马后炮一下,有如下原因: 虽然课本上的知识我都吃得差不多了,但是毕竟知识纸面上的基础知识,我并没有去追根溯源搞清楚那些方法、工具、框架到底是怎么实现的,他们的工作原理是什么。我个人觉得自己在大学时期的项目经历已经足够丰富了,但都只是把纸面上别人的东西搬运、组装,变成了我自己东西,其实那终究不是我的东西,社会需要的是创新型的人才,并不是一个敲代码的搬运工。要创新,那必然要搞懂原理,你才能够是一个创造者。

年初疫情的爆发,在家呆的几个月时间里,我重拾了我的“梦想”,经过三年工作打磨的我,决心再挑战一次我梦中的职位。经过了两个多月的复习、整合。终于在五一节前拿到了B站的offer。以下是我的入职攻略

一、JAVA部分

  1. java 中==和 equals 和 hashCode 有哪些区别? 2.int、char、long 占多少个字节 3.int 与 Integer 的区别 4.谈谈对 JAVA 多态的理解 5.String、StringBuffer、StringBuilder 区别 6.什么是内部类?内部类的作用 7.接口和抽象类的区别 8.java泛型中 extends 和 super 的区别 9.哪些情况下对象会被垃圾回收机制处理掉? 10.讲一下常见编码方式? 11.utf-8 编码中的中文占几个字节;int 型几个字节? 12.静态代理和动态代理的区别,什么场景使用? 13.JAVA 的异常体系是怎样的 14谈谈你对解析与分派的认识。

二、Android基础面试题

1.什么是ANR 如何避免它? 2.Activity和Fragment生命周期有哪些? 3.横竖屏切换时候Activity的生命周期 4.AsyncTask的缺陷和问题,说说他的原理。 5.onSaveInstanceState() 与 onRestoreIntanceState() 6.android中进程的优先级? 7.Bunder传递对象为什么需要序列化?Serialzable和Parcelable的区别? 8.动画 9.Context相关 10.Android各版本新特性 11.JSON 12.android中有哪几种解析xml的类,官方推荐哪种?以及它们的原理和区别? 13.Jar和Aar的区别 14.Android为每个应用程序分配的内存大小是多少 15.更新UI方式

三、Android高级面试题

1.说下你所知道的设计模式与使用场景 2.java 语言的特点与 OOP 思想 3.说下 java 中的线程创建方式,线程池的工作原理。 4.说下 handler 原理 5.内存泄漏的场景和解决办法 6.如何避免 OOM? 7.说下 Activity 的启动模式,生命周期 8.onRestart 的调用场景 9.SurfaceView是什么?他的继承方式是什么?他与 View 的区别(从源码角度,如加载,绘制等)。 10.如何实现进程保活 11.说下冷启动与热启动是什么,区别,如何优化,使用场景等。 12.为什么冷启动会有白屏黑屏问题? 13.Android 中的线程有那些,原理与各自特点

四、Android Framework源码相关

1.Android 系统架构 2.View 的事件分发机制?滑动冲突怎么解决? 3.View 的绘制流程? 4.跨进程通信。 5.Android 系统启动流程是什么?(提示:init 进 程 -> Zygote 进程 6.启动一个程序,可以主界面点击图标进入,也可 以从一个程序中跳转过去,二者有什么区别? 7.AMS 家族重要术语解释。 8.App 启动流程(Activity 的冷启动流程)。 9.ActivityThread 工作原理。 10.说下四大组件的启动过程,四大组件的启动与销 毁的方式。 11.AMS 是如何管理 Activity 的? 12.理解 Window 和 WindowManager。

五、性能优化专题

  1. App 稳定性优化 2.App 启动速度优化 3.App 内存优化 4.App 绘制优化 5.App 瘦身 6.网络优化 7.App 电量优化 8.安卓的安全优化

六、Kotlin、Flutter从青铜到王者PDF+视频教程

文末

还有很多知识点由于篇幅原因都没有列出来,各位大大可以去阿婆主的首页查看《Android开发者全套面试题集》免费领取研读。

总而言之,成功是留给准备好的人的。无论是参加什么面试,都要做好充足的准备,注意好面试的礼仪和穿着,向面试官表现出自己的热忱与真诚就好。即使最后没有过关,也要做好经验的总结,为下一次面试做好充足准备。