58一面面经(已挂)
渣渣一枚,大家不要见笑,视频一面,效率很高,面试官很和蔼的,年声音也很温柔,没有问到特别难的问题。但是有些知识确实自己没有涉及到,比如dubbo和zookeeper,只是在项目中使用了,并没有特别的了解底层的实现,还有一些细节。求助牛客大佬们给点这方面的资料啊,还有请大家指出我面试中存在的问题,共同加油吧,谢谢了。
- 自我介绍
简单的介绍了下学校专业方向。 - 项目介绍
从简历里挑了一个项目介绍。介绍了项目的结构,自己做的部分。 - zookeeper的作用
dubbo的注册中心,用来给消费者和生产者订阅和发布服务的。 - 每次都要去请求zookeeper吗?
不是,dubbo请求后会有缓存。 - dubbo服务缓存在哪里
在服务器的内存吧,不清楚。 - 如果调用服务的地址发生变化,服务调用者怎么知道
zookeeper应该会通知订阅者,具体不太了解。 - JVM,讲了GC,回收算法,然后问在实际中,什么情况下会遇到新生代对象特别多,而且回收不了?
没有想出来。 - B+树,实际应用。
介绍了概念,然后举了一个例子,在实际中数据库中的索引用到了该数据结构。 - 为啥要建索引,时间复杂度。
引出索引后,问我为啥建索引,我说能提高查询的效率,比较快,然后问B+树的时间复杂度,回答logm(N),m是B+树的叉数。 - 写一个函数找出一个整数数组中第二大的数字。
问了面试官有啥限制吗,说没有,然后就想起了滴滴的笔试题,快速的写了一个返回第k大数字的函数,使用了Arrays.sort(),然后就给自己埋了一个深坑,问sort底层如何实现的,我说源码确实没看过,我说我觉得应该是快排,然后问有没有比快排更快的,我说堆排可以实现,建一个最大堆,没调整一次就可以得到一个最大值,第k大的只要调整k次就行,然后问了时间复杂度,O(NlogN),问我有没有更快的,我问还有更快的吗?(面试官笑了说我就是问问),然而我下来发现之前的问题都被自己带偏了,直接遍历一遍数组就可以得到第二大的数,O(N),确实是比堆排快啊。。。
然后就注定结束了技术面试,一些常规问题:
- 北京上海选哪个
北京。接着就是下一个问题。 - 后台、客户端、大数据算法选哪个?
什么,很懵逼啊,我当时没有选岗位吗?我说后台吧。 - 有啥问题问我?
我已经很懵了,问了一句:结束了吗?
面试官说如果我这里通过的话,下午会有复试的。嗯是挂了。 - 然后还有什么问题吗?
如果过了啥时候去实习呢?
这是hr统一安排的。 - 还有啥问题吗?
没有了。
谢谢,谢谢。
再见,再见。