​1.序

马上春招了,分享一波干货。腾讯、百度、阿里、京东、快手、斗鱼、华为、海康威视等面试过程。今天来看看快手。

在面试之前给大家看看我的简历以及个人简介部分,因为面试过程与自己的简历有很大关系。面试官往往会结合简历以及个人简介来问。

<mark>个人简历+项目介绍+简历模板</mark>:梦想成真-----项目自我介绍

<mark>个人简介+自我介绍(视频讲解)</mark>:一字一句教你面试“个人简介”

2.快手面试过程

2.1快手1面 (部门:效率工程、时间:60分钟)

1、题目:两数之和

https://blog.csdn.net/weixin_41563161/article/details/104762344

2、Socket协议用什么协议(Socket底层)

直达链接:梦想成真—Socket技术详解

3、Java和python的区别

https://blog.csdn.net/weixin_41563161/article/details/104780661

如果让我接触新的语言,我可以接受,并且我会尽快入门,然后参与开发。因为我学习能力还是挺强的。

4、项目中 为什么不全用unity3D做而是用wpf+unity3D来实现仿真

因为航天方面的软件有一款公认的也是目前唯一的承认的STK,就是那个传统的客户端,简单的界面,不是全部unity仿真,如果70%的任务全部是非仿真的,所以开发较快,用了WPF;

5、项目中用到CLR组件优势在哪里

是因为模块化,以后需要的话直接拿来复用,因为实验室经常接这种航天类项目,航天类项目的话有一些是可复用的,比如轨道计算,星座覆盖,链路,这些等等。所以用组件的模式

其实这里考的是设计模式里面的策略模式模块化思想

直达链接:你们要的设计模式来了

6、java中集合有哪些?Hashmap 和TreeMap区别?

7、红黑树的特点?

https://blog.csdn.net/weixin_41563161/article/details/104986919(TreeMap使用场景 优势)

https://blog.csdn.net/weixin_41563161/article/details/102610132(B树 B+树 红黑树详解)

https://blog.csdn.net/weixin_41563161/article/details/104163948(b树和b+树的区别)

https://blog.csdn.net/weixin_41563161/article/details/104163994(TreeMap了解吗 红黑树)

https://blog.csdn.net/weixin_41563161/article/details/105462349(红黑树叶子节点都为黑色)

https://blog.csdn.net/weixin_41563161/article/details/104452601(java面试 –红黑树(插入删除过程详解))

以上是一些零散文章还没有进行大一统的整理,之后会出一篇文章进行讲解。

8、mysql数据库索引数据结构 为什么用B+树

9、主键索引和普通索引的区别

https://blog.csdn.net/weixin_41563161/article/details/102610132(B树 B+树 红黑树详解)

https://blog.csdn.net/weixin_41563161/article/details/104163948(b树和b+树的区别)

https://blog.csdn.net/weixin_41563161/article/details/105483950(B+树分裂)

https://blog.csdn.net/weixin_41563161/article/details/105165346(索引)

https://blog.csdn.net/weixin_41563161/article/details/103553313(数据库索引怎么实现的)

https://blog.csdn.net/weixin_41563161/article/details/102859171(普通索引和唯一索引,应该怎么选择?)

https://blog.csdn.net/weixin_41563161/article/details/102457643(深入浅出索引)

以上是一些零散文章还没有进行大一统的整理,之后会出一篇文章进行讲解。

10、Arrays.sort()的底层实现

Java Arrays中提供了对所有类型的排序。其中主要分为Primitive(8种基本类型)和Object两大类。
基本类型:采用调优的快速排序
对象类型:采用改进的归并排序
源码中的快速排序,主要做了以下几个方面的优化:
1)当待排序的数组中的元素个数较少时,源码中的阀值为7,采用的是插入排序。尽管插入排序的时间复杂度为0(n^2),但是当数组元素较少时,插入排序优于快速排序,因为这时快速排序的递归操作影响性能。

2)较好的选择了划分元(基准元素)。能够将数组分成大致两个相等的部分,避免出现最坏的情况。例如当数组有序的的情况下,选择第一个元素作为划分元,将使得算法的时间复杂度达到O(n^2).
3)根据划分元 v ,形成不变式 v*

当数组大小为 size=7 时 ,取数组中间元素作为划分元。int n=m>>1;(此方法值得借鉴)。

当数组大小size大于7小于等于40时,取首、中、末三个元素中间大小的元素作为划分元。

当数组大小 size>40 时 ,从待排数组中较均匀的选择9个元素,选出一个伪中数做为划分元。

11、文档编写

软件需求书 软件使用说明书 技术说明书 测试报告 markdown 绘图软件

12、提问的问题

(1)贵司的培养模式
(2)公司内部是否支持内部转岗这样的政策
(3)公司的竞升机制是怎么样的
(4)这是我第一次面试,如果可以,希望您能给我提点建议。如果不方便的话,那就辛苦您花时间来面试我了。谢谢
(5)目前我去了做什么工作。

13、其它问题

我喜欢努力极致的做目前所做的事情,就比如大学期间侧重于学生工作,所以就做到了一定的层次然后锻炼了我遇到问题解决问题的能力了。研究生期间也一样,既然选择了做研究做学问那么就一心把它做好,这也是当时为什么我本科期间基础并不是很好学历也不是很好,但是能在很短的时间内迅速提升起来并且有幸去北京***实验室参与并负责一个项目的原因。

2.2 安卓一面(部门:快手短视频海外版 时间:50分钟)

1、流量控制拥塞控制是怎么??是在路由器阻塞了吗

https://blog.csdn.net/weixin_41563161/article/details/106088167(拥塞控制 流量控制区别)

https://blog.csdn.net/weixin_41563161/article/details/104218014(TCP流量控制机制、拥塞控制)

2、用户和内核态

https://blog.csdn.net/weixin_41563161/article/details/105050458?

3、换页

https://blog.csdn.net/weixin_41563161/article/details/105106416(页面置换算法)

https://blog.csdn.net/weixin_41563161/article/details/104287186(LRU 缓存算法)

4、快速排序

直达链接:【offerMe–数据结构】----排序算法

5、TCP UDP

直达链接:一篇让你掌握TCP与UDP首部格式

6、项目

直达链接:梦想成真-----项目自我介绍

7、线程创建会有一系列的 底层操作

https://blog.csdn.net/weixin_41563161/article/details/106086897(线程的底层实现)

8、内存模型。比如成员变量 局部变量之间

https://blog.csdn.net/weixin_41563161/article/details/105316381(Java内存模型)

https://blog.csdn.net/weixin_41563161/article/details/102670179(Java内存分布、常量池、运行时数据区域)

9、volatile

https://blog.csdn.net/weixin_41563161/article/details/103869694(lock ,sychronized,volatile的区别)

10、Hashmap 插入的过程

https://blog.csdn.net/weixin_41563161/article/details/105462699(hashmap中两次hash过程)

https://blog.csdn.net/weixin_41563161/article/details/102659874(java中HashMap原理)
https://blog.csdn.net/weixin_41563161/article/details/105041804(HashMa在JDK1.7版本头插法实现解析)

https://blog.csdn.net/weixin_41563161/article/details/104708231(hashmap底层实现)

https://blog.csdn.net/weixin_41563161/article/details/104190568(HashMap、Hashtable、ConcurrentHashMap的原理与区别)

11、sleep wait区别

https://blog.csdn.net/weixin_41563161/article/details/102723400

12、场景题 下载,打水,分享 用到的设计模式

责任链模式 + 策略模式 + 命令模式

其实这个地方还是考设计模式

直达链接:你们要的设计模式来了

13、分组交换和电路交换的区别

https://blog.csdn.net/weixin_41563161/article/details/106087162

14、类锁和对象锁

https://blog.csdn.net/weixin_41563161/article/details/104918952

15、静态方法和非静态方法

直达链接:java中静态变量,静态代码块,静态方法,实例变量,匿名代码块的加载顺序

2.3 快手安卓二面(部门:快手短视频海外版 时间:60分钟)

1、线程池

https://blog.csdn.net/weixin_41563161/article/details/105304160(Java线程池实现原理—美团技术栈)

https://blog.csdn.net/weixin_41563161/article/details/103666165(线程池)

https://blog.csdn.net/weixin_41563161/article/details/105167708(线程池详解)

https://blog.csdn.net/weixin_41563161/article/details/104889470(线程池关闭以及状态)

2、两两反转链表

直达链接:剑指offer–链表–反转链表

3、https

直达链接:一篇让你彻底了解HTTP 的前世今生

直达链接:一篇让你彻底了解http请求报文和响应报文的结构

直达链接:程序员必考—http\https的连接过程

4、操作系统里面的软中断硬中断

https://blog.csdn.net/weixin_41563161/article/details/106066862

6、DNS是单条消息吗 用的什么协议

https://blog.csdn.net/weixin_41563161/article/details/106069473(DNS用的是TCP协议还是UDP协议)
https://blog.csdn.net/weixin_41563161/article/details/113133203(一篇让你彻底了解DNS原理及其解析过程)

https://blog.csdn.net/weixin_41563161/article/details/104896247(DNS解析详细)

7、线程池以及java提供的线程 如何停止一个线程

https://blog.csdn.net/weixin_41563161/article/details/104942044

8、docker

https://blog.csdn.net/weixin_41563161/article/details/102586686

9、堆和栈

https://blog.csdn.net/weixin_41563161/article/details/105316381(Java内存模型)

https://blog.csdn.net/weixin_41563161/article/details/102670179(Java内存分布、常量池、运行时数据区域)

10、垃圾回收

https://blog.csdn.net/weixin_41563161/article/details/103882414(G1和CMS区别)

https://blog.csdn.net/weixin_41563161/article/details/103865628(分代回收算法)

https://blog.csdn.net/weixin_41563161/article/details/104093660(GC回收机制(垃圾回收器经典算法)(JVM中内存区域的划分)(GC收集器有哪些))

11、亿个数字找出前1000大的数字

https://blog.csdn.net/weixin_41563161/article/details/102846524(如何在10亿数中找出前1000大的数)

https://blog.csdn.net/weixin_41563161/article/details/104370095(Top-N)

3.快手面试感受

  • <mark>切记不要随便在牛客网上扔简历</mark>,因为牛客网上一个招聘信息出来后扔简历的人很多,我的快手第一次面试就是没过,我的另一个小伙伴也一样,因为人太多了所以没有优势,(其实还是自己菜)。

  • 最好找自己的师兄师姐帮忙内推这样几率大。

  • <mark>A题一定要A过去</mark>,这就要在之前狠下功夫,如果一开始题就不行后面的面试如果没有特别出彩的话会直接pass。

  • 基础知识的总结,<mark>每一次面试完都要及时修补</mark>,然后就是新知识的补充。

  • 坚持,它是一个<mark>持久战</mark>,只要不断努力小伙伴们一定、一定、一定会拿到心仪的offer。

  • 快手的面试官很好,所以放轻松尽情的表达自己就 OK了。

本公众号分享自己从程序员小白到经历春招秋招斩获10几个offer的面试笔试经验,其中包括【Java】、【操作系统】、【计算机网络】、【设计模式】、【数据结构与算法】、【大厂面经】、【数据库】期待你加入!!!

1.计算机网络----三次握手四次挥手
2.梦想成真-----项目自我介绍
3.你们要的设计模式来了
4.震惊!来看《这份程序员面试手册》!!!
5.一字一句教你面试“个人简介”
6.接近30场面试分享
7.你们要的免费书来了