虾皮 一面面经
大概记录分享一下吧,攒人品
时间:8.10 15:00
面试官说:整个面试时间在45min左右,前15min包括自我介绍和一些问答题,后30min写题,如果有剩下时间再问一些问题
自我介绍:简历上的不需要说,介绍一下额外的。(我没啥说的,简历上没写项目,就简单说下做的项目,语言
问答题:(面试官有提示,如果问题我比较了解可以深入的说下,不了解可以直接跳过)
1.浏览器输入url发生了什么?
我就回答了dns,http那部分,tcp三握手四挥。其实知道还可以根据整个网络传输模型说下,但是怕说错。(面试官提示可以再说下网络层,运输层,估计是可以再说说mac地址ARP协议之类
2.项目中用过数据库吗?为什么用索引,优缺点
3.三次握手过程,为什么三次,两次行吗,四次呢
4.文本文件取后十行(我对linux命令真记不住啊!!只记得cat了) 应该用tail
5.悲观锁乐观锁,使用场景
我结合synchronized,CAS说的。场景我就从数据准确要求,性能方面说的
6.IO多路复用模型
前一天晚上刚看的,从多进程-多线程-io多路复用说了下,说不太好。。监视器,开关。。(应该说下后台监控啥的。。)
-------15min结束-------
编程题:最长不重复子串 (要自己写输入输出,导包)
我整整写了30min。。。。直接写的O(n)复杂度的。用个map记录上个重复字符最后出现的index。和面试官解释完之后他好像没听太明白我写的逻辑....
------30min写完--------
面试官说时间刚好,但是还有一些问题想问我,我说没问题。。。。。然后就开始一些我答的很差的内容
1.drop/delete/trancate区别。。
我说了trancate很少用到
2.判断单链表是否有环
记录走过的node,快慢指针
3.数据库为什么推荐自增id做主键
我说了索引,维护平衡(但是听自己的录音发现我说的乱七八糟,直接说b+树应该就好)
4,http状态码,自己有没写过
12345开头的意思说了一下。老实回答自己项目没写这些。。
5. 怎么分库分表
没实践过,问要答原则还是什么,面试官说没接触过就跳过。(后来查了下,感觉可能稍微答下什么时候要分库,什么时候分表,优缺点应该就行,其实不难,但我确实没看这个之前
6.了解过布隆过滤器吗
(刚好前一天补redis的时候好像看到过),就说了当发生缓存雪崩的时候可以用这个过滤一些恶意请求防止DB压力过大之类的。(但我记错了,其实是缓存穿透时候,查一个不存在的数据。如果了解过这个过滤器的话应该可以说说他的功能还有实现原理,优缺点。但我依然是没看过。。。。。。
7.java比较熟那就问你java问题吧,线程池说说,对线程池理解,参数,怎么创建
。。。被问了一百遍每次都说不好,因为总觉得不会再被问到。就没想到会问我什么参数啊,我就答了executor。参数就记得了可以设置线程数量。(面试官后面提示还有存活时间,任务队列啥的,但我确实没用到过。。。。。。因为想着问java应该问JVM,java特性那些...
-------问完了,反问------
1.不知问啥,语言你们用go吗
答:python和go,go多。一般java会的话转go容易
2.工作中什么能力比较重要
答:(笑)肯定是解决问题和写代码的能力啊,当然还有基础。像刚刚问的线程池。。。。
------时间到了--------
后面看校招的通知.
面试官是个可爱的小姐姐,所以我面试过程也慢慢不太紧张了,答不好也在那傻笑。总体来说面试的都是基础的东西啦,我的广度可能还是不太够..
体验挺好哒,虾皮真不错!只是我还要加油
许愿!LUCKY!