头条后台开发一面
1、浏览器输入网址后发什么
balabala。。。感觉很简单,然后。。
2、你说到了DNS解析,你等下,我这里给你一个URL,你讲下是怎么解析成IP的
看到这一大串瞬间就慌了。。。说没了解过。
3、你讲到了TCP建立连接,好,请讲下time_wait时发生在三次握手还是四次挥手
。。不按常理出牌,我把fin-wait和time-wait搞混了
4、http返回的响应分哪几部分,响应状态码了解吗,能说出几个?503代表什么?
只记得1XX,2XX,3XX,4XX,5XX,没记具体的,所以只回答了200 和404.哎,看过了不代表会说啊。。
5、http有哪些请求方法?
完了只记得get和post,然后就问get和post区别
6、用过数据库没,都用过哪些数据库,讲一下数据库的存储过程
没听过。。。
7、数据库的锁有哪些。有哪些优缺点?
我知道有行锁和表锁,共享锁和排他锁,但是答得语无伦次,没有逻辑性。
8、缓存了解么
知道要问redis,我没学过,说不了解
9、最后15分钟写个算法把
傻了,给的第一道题是剑指offer原题,找出两个链表交叉点。。。我直接说我做过
然后面试官说那我们换个题吧
然后换了这个
- 山形数组定义如下:
一维数组,数组元素从左到右逐渐变大,达到某个最大值后,又开始逐渐减小
- 例如:1, 2, 2, 5, 10, 9, 8, 2, 1, 1
- 要求按照元素从小到大顺序,不重复输出,上面case的输出为1, 2, 5, 8, 9, 10
- 要求时间复杂度O(n),空间复杂度O(1)
第一想法是hash去重,后面一想不对,后面怎么按顺序输出呢?
然后就说排序在遍历,时间是O(nlogn),实在想不出来,面试官说那就放宽条件,时间就nlogn把
然后问我会不会快排,我讲了下思想,问我能不能写出来,我暂时还写不出来。
允许我调用系统的排序。。。
牛客的这个ide平时没怎么用,报了好多错,不到10行代码改了几分钟。。尴尬
磕磕绊绊终于运行成功了。。
最后小哥哥建议要打好基础,多刷题。。想哭
人生第一次视频面试,有点紧张,从电话通知到面试,四天时间我每天都没睡好,问的问题都很常规,网上也都有类似的问题,但就是好高骛远的去一心思看了那些什么高并发、hash源码、数据库调优、JVM这类的,没有去管这些基础知识的识记。看的时候感觉博客讲的真好,然后觉得自己都会了,其让你现场讲一下,你才发现自己讲不出所以然,所以还是要背诵。看过不等于自己就会了,一定要熟记于心,多看多背!