大应科技 面经
1.自我介绍
2.自我介绍讲到了写的DB项目,问能不能看看我的项目。(这里时间有点久,大概有10多分钟了,大致讲讲)
- 先让我看看SQL语句解析(我用的是简单的状态机,问我有没有SQL执行优化,我说这个有点难没有,他说这个其实是最核心的部分)
- 让我讲讲项目的整体架构,(因为以前写readme画了架构图,开github顺着架构图讲了一遍)
- 讲架构图的途中提到了我的事务实现,问我锁的问题,大致讲了一下如何实现读已提交,如何回滚,然后提到做了死锁检测回滚。问我怎么解决的,又给他看了张逻辑图,然后顺着代码讲了一下。(他一开始看不懂,我逻辑也有点乱,后来理了一下讲明白了)
3.开始八股,先问了静态类和非静态类有什么区别(底层的),然后问静态方法存储在哪里,没答上来,问我是不是没了解过jvm,我说还是了解了很多的,这一块不太懂(脑子短路了)。
4.问我聊不了解netty(因为我项目用了简单的netty实现的http通信),我说不是特别懂,只会简单的使用,就没继续问。(聊到这里以为凉凉了)
4.在浏览器中,如何输入www.taobao.com 到返回界面后发生了什么。(问题有点大,大致讲了一下dns然后tcp然后后端处理发送数据,浏览器生成界面,讲的不是很好吧)
5.问我如果再次访问同一个网站会有啥区别,说了浏览器或者nginx缓存静态页面,提了一嘴如果登陆过可能会携带cookie和token(主动引导)
6.讲一下session和cookie。(正合我意)
7.问进程通信(只答了共享内存,消息队列和管道)
8.场景题:每行一个多位整数,2个G的数据吗,给定一个整数,判断是否存在。想了很久,说了个字典树,(其实想让我说的应该是分治,面完研究了一下懂了),这题卡了好久,确实没想出来,主要有点没明白意思,我以为要从内存入手。结果是修改文件结构。
9.问我了解什么数据结构,提了策略模式,然后工厂模式,提了一嘴我的DB对类型的创建用了工厂,继续看我的代码讲了很多。
反问环节:
1.公司做什么的,回答没听懂,大概是大数据方向,个人理解是执行器优化,就是让每次查找更快速。有点懂前面问的问题和说的话了。聊了一会,最后问我什么安排,我说实习找工作,然后就结束了。
----------------------------------------
当天下午 约二面