BIGO JAVA开发,123面面经
今天上午现场面的,连着两面加HR面,说一周内答复。
写篇面经攒人品,ball ball上岸吧。
~~~~~~~~~~~~~
先说笔试吧,我听说有人JAVA岗笔试两个小时,为什么我只有一个小时啊。
先是十多个选择题, 做了十多分钟吧,有几个一直纠结纠结。
选择题提交了才能看简答题,我这里是七道题,我以为都是简答,结果从第五题开始就是编程题了,我真的晕死,时间根本不够啊。
建议选择题别太纠结,毕竟分值小,否则大题来不及做。
1.dns解析的两种方式(递归&迭代)
2.tcp是怎么保证传输可靠
3.死锁发生的条件
4.写出最少7个spring的注解并解释
5.判断是否是回文链表
6.两个字符串 比如1.22.33和1.22.34代表两个版本号,判断那个版本更新
7.没时间看了。。
一面(45MIN):
先过了一下简历,问问了项目就开始撕代码
第一题:给定一个长度为N的数组,现在有0-N 一共N+1个排序的数,从中间剔除一个后放到数组内,求出缺失的数。
因为是有序的,所以可以二分做,大家可以自己试一试,想一下二分找左右的逻辑。
第二题:数组求交集
没什么说的,hashmap秒了。
然后和我讨论一个场景题,微信红包怎么设计红包额度分配算法。
开放性命题,言之有理即可。
二面(40MIN)
先问了一些JAVA基础问题,比较常规
重写和重载的区别,然后具体展开问:
重载:返回值不同可以重载吗,然后给了一个泛型擦除的例子,问我可以重载吗,为什么。
重写:问我子类重写的方法有什么要求,我说了权限比父类大,面试官立刻给我挖坑说也就是private升为protected喽,我想都没想就嗯了(直接跳坑里),幸好立刻反应过来了
问我hashmap具体的实现,key可不可以为null, 又问我null key怎么算hashcode
然后是concurrenthashmap的实现,如何保证操作安全,使用的是什么锁。
接着问我sync..和lock的区别,底层实现
AQS
还问了线程池,从工作流程到参数配置都问了一下。
可能还有问题遗漏吧,不过都是常规问题,比较基础。
碎碎念一句我专门看了很久的JVM一直没问。
撕代码,最小栈(写纸上)。
我感觉撕代码环节就是让面试官写面试意见和打分的,我几分钟把最优方法写了给他看,他很明显面试意见还没写完,就让我换个思路(空间复杂度的常数比我前面的方法大)再写一遍。
就差不多去门口等通知有没有第三轮。
三面(30MIN)
问了我在华为实习的经历,聊了聊那边的软件框架, 5G的东西。
然后我也不知道怎么扯到了hashmap,就开始问我hashmap的东西,和TX一样,不停扩展,不停优化。
然后简历上三个项目挨个问,
前两个问的都比较宽,考察一些大局的东西。
最后这个问的比较细,主要是抓住NIO这个点一直问,我就从JVM的内存分配,到NIO的流程,到epoll的实现,顺便也说了poll和selector的缺点。
然后面试官问我如果NIO有一个事件没有处理会怎么样,我就说了LT和ET模式。我说出来以后面试官还是比较满意的就直接让我去外面等HR面。
最后撕了个代码,一个英文句子,有很多单词,实现逆序输出
demo: how are you -> uoy era woh
HR面(十多分钟):
就是聊呗,没啥说的。。
最后走的时候给了一件面试官同款T,我看到门口放的大玩偶,问了一句我可以要一个吗,HR也给我了(别说我脸皮厚)。
总结,BIGO面试体验很好,面试官也很认真负责,希望能有offer。
#BIGO##面试题目##Java工程师#