麻了,这帖子怎么又顶上来了........
因为在公司被人认出来了。。很尴尬。。。所以就删减掉一些信息。。。。
好像是30道java和安卓的选择题,当时安卓部分的都不会
算法是两道力扣原题,直接秒了,一道是编辑距离,另外一道忘记了.
给他讲了自己大学的学习情况 , 学习了哪些技术 , 做了哪些项目
简单说了下工厂模式,单例模式,观察者模式,策略模式,因为我知道这个面的是安卓岗位,所以重点给他讲了模板方法模式 ,我自己了解到的是安卓有生命周期流程,生命周期流程应该是用了模板方法,又提了一下前端react和vue应该也使用了模板方法模式,他们都有生命周期方法,这些都是钩子函数 (我也不知道讲的是否正确,错了轻喷)
平时项目部署会用到
进线程区别老八股了 , 进程的通信方式:管道,套接字,共享内存,消息系统,信号量
用过linux的 "|"
讲了加载-连接-初始化的具体过程,也说了下类加载器的双亲委派
同样老八股.重点跟他说了arraylist,说了下自己看的扩容源码,防止扩容溢出的方式.
知道这个东西,但是没有具体学习过.
mix4是屏下摄像头吗?
本来是约好三点牛客面的 , 但是他1点提前打电话来,我还在公司办公室,就改成了用电话面
老八股
校验和,重传机制,流量控制和拥塞控制
我个人的理解,拥塞控制是针对整个网络环境,流量控制是双方的接收发送能力
老八股,慢启动巴拉巴拉巴拉,提了一句还有很多种拥塞控制方案,比如bbr , 再讲了下了解过一点kcp协议,以及浅显地说了下kcp为什么可以做到可靠以及低延时
非对称加密交换密钥,再用密钥去进行对称加密传输,中间涉及到证书的验证吧啦吧啦吧啦
八大参数说了一遍,具体讲了自己对最大线程数和阻塞队列这两个参数的理解,如果设置的是无界队列,那么最大线程数这个参数就没什么意义了 . 又说了下线程池的具体工作流程vol
会触发拒绝策略,拒绝策略其实就是一个接口,这个接口有个方法,会传进来两个参数,一个是线程池本身另一个是继续添加的任务,你想怎么处理这个任务都行,比如直接抛弃报异常,或者是让当前线程去执行这个任务.....最后跟他说了下,我实现过简易的线程池,对这方面有一点了解.
老八股
syn和lock,cas自旋锁
老八股,再提了下刚刚说到的cas自旋锁
dfs,bfs,logn
八大排序
堆排,快排,归并这些可能会好点,具体看业务
讲了下自己的理解,有些业务可能选插入冒泡这种稳点的排序会更好,比如需要多次排序
冒泡,插入,比较慢的都是吧,具体看排序过程种有没有打乱先前排好的位置(说错轻喷)
mix4到底是不是屏下摄像头?