2018快手Java研发工程师面试经验

2018快手Java研发工程师面试经验

2018快手Java研发工程师面试经验

一面: 

1 写一个选择排序或者插入排序

2 写一个生产者消费者

3 Java多线程了解么,什么时候一个int

类型的操作是不安全的,自加呢,赋值呢。

如果使用volatile修饰的话有什么作用。

4 MySQLredis的区别是什么

5 为什么MySQLRedis都要使用独立进程来部署,开放端口来提供服务,为什么不写在内核中。

6 有一个场景,多线程并发,为每个线程安排一个随机的睡眠时间,设想一种数据结构去唤醒睡眠时间结束的线程,应该用哪种结构,答应该用优先级队列,也就是小顶堆,顶部是剩余睡眠时间最短的那个线程。

7 好像就是这些了。

 

二面: 

1 项目

2 多线程

3 一道算法题,一个二维矩阵进行逆置操作,也就是行变列列变行。刚开始我理解错了,直接用一维数组转储再重新填入新数组。

面试官说可以不用一维数组么

然后解答的过程中才发现我理解错了。改了一会才搞定。

4 扩展一下,二维数组存在500g的文件中,怎么做才能完成上面算法的操作,我就说先按行拆分,最后再拼接。

5 扩展两下,一行数据就会超出内存,应该怎么做,那就按列拆分,最后合并。

6 知道服务的横向扩展和纵向扩展么,刚开始理解错了,后来就说是提高单机性能,以及扩展成集群。

7 cap介绍一下吧,为什么只能32

8 线程与进程

9 tcpudp的区别

10 getpost的区别

11 并发量大概多少,做过优化吗

 

2018快手Java研发工程师面试经验

 

  • 1、刺猬实习遵循行业规范,任何转载的稿件都会明确标注作者和来源
  • 2、刺猬实习的原创文章,请转载时务必注明"来源:刺猬实习",不尊重原创的行为刺猬实习或将追究责任
  • 3、作者投稿可能会经刺猬实习编辑修改或补充。

相关推荐