面试经验|三本菜鸡的小米面试
67152
2021.07.13
2021.09.16
发布于 未知归属地

麻了,这帖子怎么又顶上来了........

因为在公司被人认出来了。。很尴尬。。。所以就删减掉一些信息。。。。

02...

笔试

好像是30道java和安卓的选择题,当时安卓部分的都不会

算法是两道力扣原题,直接秒了,一道是编辑距离,另外一道忘记了.

一面 7.1号 20分钟

1.简单介绍下自己

给他讲了自己大学的学习情况 , 学习了哪些技术 , 做了哪些项目

2.说说你了解的设计模式

简单说了下工厂模式,单例模式,观察者模式,策略模式,因为我知道这个面的是安卓岗位,所以重点给他讲了模板方法模式 ,我自己了解到的是安卓有生命周期流程,生命周期流程应该是用了模板方法,又提了一下前端react和vue应该也使用了模板方法模式,他们都有生命周期方法,这些都是钩子函数 (我也不知道讲的是否正确,错了轻喷)

3.linux了解么

平时项目部署会用到

4.线程和进程的区别 , 进程的通信方式了

进线程区别老八股了 , 进程的通信方式:管道,套接字,共享内存,消息系统,信号量

5.用过管道么

用过linux的 "|"

7.jvm类加载过程

讲了加载-连接-初始化的具体过程,也说了下类加载器的双亲委派

8.linkedlist和arrarylist的区别

同样老八股.重点跟他说了arraylist,说了下自己看的扩容源码,防止扩容溢出的方式.

9.了解kt么

知道这个东西,但是没有具体学习过.

10.有什么想问的吗?

mix4是屏下摄像头吗?

7.10 二面 15分钟

本来是约好三点牛客面的 , 但是他1点提前打电话来,我还在公司办公室,就改成了用电话面

1.讲一下Udp和tcp

老八股

2.tcp的可靠性是怎么保证的

校验和,重传机制,流量控制和拥塞控制

3.讲讲拥塞控制和流量控制的区别

我个人的理解,拥塞控制是针对整个网络环境,流量控制是双方的接收发送能力

4.具体讲讲tcp拥塞控制

老八股,慢启动巴拉巴拉巴拉,提了一句还有很多种拥塞控制方案,比如bbr , 再讲了下了解过一点kcp协议,以及浅显地说了下kcp为什么可以做到可靠以及低延时

说一下https

非对称加密交换密钥,再用密钥去进行对称加密传输,中间涉及到证书的验证吧啦吧啦吧啦

5.线程池,你怎么创建线程池

八大参数说了一遍,具体讲了自己对最大线程数和阻塞队列这两个参数的理解,如果设置的是无界队列,那么最大线程数这个参数就没什么意义了 . 又说了下线程池的具体工作流程vol

6.如果线程池和队列都满了,继续添加任务呢

会触发拒绝策略,拒绝策略其实就是一个接口,这个接口有个方法,会传进来两个参数,一个是线程池本身另一个是继续添加的任务,你想怎么处理这个任务都行,比如直接抛弃报异常,或者是让当前线程去执行这个任务.....最后跟他说了下,我实现过简易的线程池,对这方面有一点了解.

7.说说乐观锁和悲观锁

老八股

8.java里常用的锁

syn和lock,cas自旋锁

9.volatile

老八股,再提了下刚刚说到的cas自旋锁

10.树的遍历方法,二叉树搜索树查找效率

dfs,bfs,logn

11.排序方法

八大排序

12.如果大数据量排序选哪种

堆排,快排,归并这些可能会好点,具体看业务
讲了下自己的理解,有些业务可能选插入冒泡这种稳点的排序会更好,比如需要多次排序

13.哪些是稳定排序呢?

冒泡,插入,比较慢的都是吧,具体看排序过程种有没有打乱先前排好的位置(说错轻喷)

14.有什么想问的吗?

mix4到底是不是屏下摄像头?

00....

评论 (228)