别人都去BAT,我只钟爱小破站(记我的B站入职攻略)

唠唠嗑:

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

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

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

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

战略储备:

一、计算机网络基础

(一)HTTP/HTTPS
1.HTTP与HTTPS有什么区别?
2.HTTP1.0和HTTP1.1的一些区别
3.请求慢的解决办法
4.Http的request和response的协议组成
5.谈谈对http缓存的了解。
6.HTTPS加密原理
7.HTTPS如何防范中间人攻击
8.有哪些响应码,分别都代表什么意思?

(二)TCP/UDP
1.为什么TCP要经过三次握手四次挥手
2.TCP可靠传输原理实现(滑动窗口)
3.Tcp和Udp的区别?
4.如何设计在 UDP 上层保证 UDP 的可靠性传输?

(三)其他网络重要概念
1.socket断线重连怎么实现,心跳机制又是怎样实现?
2.Cookie与Session的作用和原理。
3.IP报文中的内容。

计算机基础面试题

二、算法与数据结构

主要是刷LeetCode,剑指offer。

1.时间复杂度 / 空间复杂度
2.常用的排序算法有哪些?
3.字符串反转
4.链表反转(头插法)
5.如何查找第一个只出现一次的字符(Hash查找)
6.如何查找两个子视图的共同父视图?
7.无序数组中的中位数(快排思想)
8.如何给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
9.二叉树前序、中序、后序遍历
10.最大 K 问题
11.广度、深度优先搜索算法
12.String 转 int。核心算法就三行代码,不过临界条件很多,除了判空,还需要注意负数、Integer 的最大最小值边界等;
13.如何判断一个单链表有环?
14.100 亿个单词,找出出现频率最高的单词。要求几种方案;
15.链表每 k 位逆序;
16.镜像二叉树;
17.找出一个无序数组中出现超过一半次数的数字;
18.计算二叉树的最大深度,要求非递归算法。
19.String 方式计算加法。

三 、JAVA基础面试题

1.HashMap相关
2.ArrayList相关
3.LinkedList相关
4.Hashset源码分析
5.内存模型
6.垃圾回收算法(JVM)
7.反射与类加载过程
8.线程、多线程与线程池
9.设计模式(六大基本原则、项目中常用的设计模式、手写单例等)
10.java四大引用
11.Java泛型
12.接口、抽象类的区别
在这里插入图片描述

四、 Android面试题

1.什么是ANR 如何避免它?
2.Activity和Fragment生命周期有哪些?
3.横竖屏切换时候Activity的生命周期
4.AsyncTask的缺陷和问题,说说他的原理。
5.onSaveInstanceState() 与 onRestoreIntanceState()
6.android中进程的优先级?
7.Bunder传递对象为什么需要序列化?Serialzable和Parcelable的区别?
8.动画(原理及特点,区别等)
9.Android各版本的特性
10.JSON优缺点
11.android中有哪几种解析xml的类,官方推荐哪种?以及它们的原理和区别?
12Jar和Aar的区别
13.Android为每个应用程序分配的内存大小是多少
14.更新UI方式
15.Thread、AsyncTask、IntentService的使用场景与特点。
16.Handler机制
17.内存泄漏怎么产生、怎么查找、解决
18..binder机制的作用及原理
19说下四大组件的启动过程,四大组件的启动与销毁的方式。
20.Android虚拟机和JAVA虚拟机的区别(JVM、Davilk、ART三者的原理和区别)
在这里插入图片描述

五、 Kotlin、Flutter相关面试题

1.Kotlin 特性,和 Java 相比有什么不同的地方?
2.Kotlin为什么能和Java混编?
3.什么是协程?
4.Hybrid通信原理是什么,有做研究吗?
5.JS的交互理解吗?平时工作用的多吗,项目中是怎么与Web交互的?
6.react native有多少了解?讲一下原理。
7.weex了解吗?如何自己实现类似技术?
8.flutter了解吗?内部是如何实现跨平台的?如何实现多Native页面接入?如何实现对现有工程的flutter迁移?
9.说说你用过的混合开发技术有哪些?各有什么优缺点?
10.快应用了解吗?跟其她方式相比有什么优缺点?

在这里插入图片描述

以上就是我两个多月学习整理出来的Android全方面的各大厂历年真题面试题集。都已经成功圆梦入职B站啦,所以这份资料也就无偿分享出来给大家。还附带其他中高级的面试资料和我看过的一些优质教学视频哦。
领取只需要 @我 或者关注我后私信【面试】即可无偿分享

【视频教程】


免费下载地址:https://shimo.im/docs/Gg6hJ3tGhqkYghqP/read
天道酬勤,只要你想,大厂offer并不是遥不可及!希望各位都能找到自己梦中理想的工作,过上自己喜欢的生活。长风破浪会有时,直挂云帆济沧海!

原文地址:https://www.cnblogs.com/Android-Alvin/p/12983687.html